6

我正在尝试使用 Qt4 的 WebKit 端口/实现编写一个简单的日志查看器。我的 HTML 代码如下所示:

http://pastie.org/613296

更具体地说,我试图找出如何<script>从我的 C++ 代码调用 HTML 文档部分中定义的 add_message() 函数。


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

1 回答 1

14

如果您使用的是 Qt 4.5,请执行以下操作:

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

注意:null脚本末尾是针对性能问题的。QWebFrame::evaluateJavaScript返回QVariant脚本中的最后一个值。评估脚本中的最后一个值可能非常耗时,因此将null其放在末尾会使其立即返回。

于 2009-12-03T14:53:04.520 回答