html文件里加入了如下js代码:
<script language="JavaScript" type="text/javascript">
function tryalert()
{
alert("i'm js alert!");
}
</script>
Qt代码里先尝试在javaScriptWindowObjectCleared信号对应的槽里调用, 结果失败了:
connect(ui.webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()),
this, SLOT(populateJavaScriptWindowObject()));
...
void FormExtractor::populateJavaScriptWindowObject()
{
ui.webView->page()->mainFrame()->evaluateJavaScript("tryalert();");
}
找专家问了问, 是因为这个信号发出得太早了, 页面还没有完全载入。 需要在后面调用。 最好是响应loadFinished(bool)信号:
connect(ui.webView->page()->mainFrame(), SIGNAL(loadFinished(bool)),
this, SLOT(callFunction()));
...
void FormExtractor::callFunction()
{
ui.webView->page()->mainFrame()->evaluateJavaScript("tryalert();");
}
在Qt代码里调用js中的函数
最新推荐文章于 2024-05-21 19:09:41 发布