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-07-10 03:45:42 发布