Próbuję napisać prostą przeglądarkę dziennika przy użyciu portu/implementacji Qt4 WebKit. Moje HTML kod wygląda następująco:Qt4: Jak wywołać funkcje JavaScript na stronie z C++ za pomocą QtWebkit?
Dokładniej, próbuję dowiedzieć się, jak wywołać funkcję add_message(), która jest zdefiniowana w sekcji <script>
w dokumencie HTML z mojego kodu C++.
// Doesn't work:
QWebElement targetElement = chatView->page()->mainFrame()->findFirstElement("head").firstChild("script");
// Function is not included, either...
qDebug() << targetElement.tagName() << targetElement.functions();
// The ultimate attempt in calling the function anyway:
QVariant functionResult = targetElement.callFunction("add_message");
Dzięki, spróbuję od razu, kiedy wrócę do domu. Chociaż wygląda na to, że muszę uciec od argumentów, aby użyć ich jako literałów w wywołaniu evaluateJavaScript(). Czy to nie jest niebezpieczne? – BastiBen
Tak, musisz uciec od argumentów, ponieważ JavaScript wygeneruje błędy. Nie powinno to być niebezpieczne, ponieważ uciekniesz tylko dla parsera JavaScript, na stronie webkita pojawi się to samo, co parametr bez zmiany znaczenia –