Qt4: How to call JavaScript functions in a page from C++ via QtWebkit?

喜欢而已 提交于 2019-12-06 00:37:55

问题


I'm trying to write a simple log viewer using Qt4's WebKit port/implementation. My HTML code looks like this:

http://pastie.org/613296

More specifically, I'm trying to find out how to call the add_message() function which is defined in the <script> section in the HTML document from my C++ code.


// 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");

回答1:


If you are using Qt 4.5 do it something like this:

htmlView->page()->mainFrame()->evaluateJavaScript("add_message(); null");

Note: null at the end of script is for performance issue. QWebFrame::evaluateJavaScript returns QVariant with last value in the script. Evaluating last value in the script may be really time consuming, so putting null at the end makes it return immediately.



来源:https://stackoverflow.com/questions/1409522/qt4-how-to-call-javascript-functions-in-a-page-from-c-via-qtwebkit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!