Inline JavaScript in C++



  • Hi,

    Ich versuche im C++ ein "document.getElementById('xyz').click()" hinzubiegen. Gibt es da irgendwelche freundliche Bibliotheken dafür? Also angenommen ich hab jetzt das HTML mitsamt den JavaScript-Dateien einer Seite heruntergeladen, wie kann ich jetzt in C++ so ein "Inline JavaScript" hinbekommen?

    Ich suche eine benutzerfreundliche Bibliothek, hab mir schon SpiderMonkey von Mozilla angesehen. Die Beispiele sehen für mich ziemlich wirr aus, irgendwie blick ich bei dieser Lib nicht durch. Gibt es da denn wirklich nichts schöneres für so eine einfache Aufgabe? Ich hab mir sowas wie...

    doc.load("path/to/file");
    auto& element = doc.getElementById('x');
    element.click()
    

    ...vorgestellt. Kennt da eventuell jemand was?

    Danke im Voraus,
    Naseweiß



  • Wenn du einen fertigen Browser einbindest, müsste das relativ einfach gehen. Ich kenn das von Qt und der QWebView, da kann man auf die Weise eine Seite laden und auf die Elemente und auf das JS zugreifen. In .NET gings mit dem WebBrowser Control glaub ich genau so, weiß es grad aber nicht mehr.
    Sind aber keine wirklich eleganten Lösungen, weil das GUI Komponenten sind.



  • Mir ist nicht klar was du erreichen möchtest. Du möchtest also eine HTML Seite in deinem Programm anzeigen und dann dafür sorgen, dass ein bestimmtes Element automatisch geklickt wird? Dafür braucht man ja schon nen halben Webbrowser. Wenn das wirklich dein Ziel ist wirst du dir wohl eine der Browser Engines aussuchen müssen und gucken ob du damit zurecht kommst.



  • Mechanics schrieb:

    Sind aber keine wirklich eleganten Lösungen, weil das GUI Komponenten sind.

    Naja, wenn das Programm ne GUI haben soll ist die Lösung ja wohl noch aktzeptabel 😉
    Danke für die Info, ich werde es mal mit Qt versuchen.

    sebi707 schrieb:

    Mir ist nicht klar was du erreichen möchtest. Du möchtest also eine HTML Seite in deinem Programm anzeigen und dann dafür sorgen, dass ein bestimmtes Element automatisch geklickt wird?

    Ich wollte einen Klick simulieren, damit ein bestimmter Text im HTML entsprechend verändert wird. Somit kann ich bestimmte Aufgaben im Web automatisieren.

    Nochmals vielen Dank für eure Hilfe!



  • Ich hätte dafür ja node + phantomjs (oder andere libs) benutzt, statt C++.


Log in to reply