如何在QWebFrame中注入Javascript?

时间:2013-03-30 00:27:40

标签: qt qwebkit

QObject::connect(webview->page()->mainFrame(), SIGNAL(initialLayoutCompleted()), webview->page()->mainFrame(), SLOT(evaluateJavaScript("alert(); null")));

我的代码可以编译,但后来什么也没发生。 evaluateJavascript不是问题,因为我已经在独立测试,它工作正常。信号既不是问题,因为我已经完成了:

QObject::connect(webview->page()->mainFrame(), SIGNAL(initialLayoutCompleted()), webview, SLOT(close())));

该应用已正确关闭。我认为这个问题与“webview-> page-> mainFrame()”部分有关。

感谢。

1 个答案:

答案 0 :(得分:0)

evaluateJavaScript("alert(); null")不是插槽的名称,它是一个完全形成的函数调用。 QObject:connect()失败,因为它需要插槽的名称,包括参数类型,而不是函数调用。

你需要在你的类中提供你自己的插槽函数,可能继承QWebView。然后将evaluateJavascript("...")调用放在该插槽中,并将SIGNAL(initialLayoutCompleted())连接到该插槽。