Qt函数runJavaScript()不执行JavaScript代码
我正在尝试用Qt实现web页面的显示。我选择使用QtWebEngine来完成我的任务。以下是我所做的:Qt函数runJavaScript()不执行JavaScript代码,javascript,html,qt,qtwebengine,Javascript,Html,Qt,Qtwebengine,我正在尝试用Qt实现web页面的显示。我选择使用QtWebEngine来完成我的任务。以下是我所做的: 编写了一个由空表单组成的示例网页 编写了一个JS文件,其中只包含一个API,用于在表单中创建单选按钮 在我的代码中,它如下所示: View = new QWebEngineView(this); // read the js file using qfile file.open("path to jsFile"); myJsApi = file.Readall(); View->pa
- 编写了一个由空表单组成的示例网页李>
- 编写了一个JS文件,其中只包含一个API,用于在表单中创建单选按钮李>
View = new QWebEngineView(this);
// read the js file using qfile
file.open("path to jsFile");
myJsApi = file.Readall();
View->page()->runjavascript (myjsapi);
View->page()->runjavascript ("createRadioButton(\"button1\");");
我发现
runJavaScript()
函数对网页没有影响。我可以在输出窗口中看到网页,但我期望的单选按钮不存在。我做错了什么?我认为您必须将page()
的信号连接到一个插槽,然后在此插槽中执行runJavaScript()
void yourClass::mainFunction()
{
View = new QWebEngineView(this);
connect( View->page(), SIGNAL(loadFinished(bool)), this, SLOT(slotForRunJS(bool)));
}
void yourClass::slotForRunJS(bool ok)
{
// read the js file using qfile
file.open("path to jsFile");
myJsApi = file.Readall();
View->page()->runJavaScript(myjsapi);
View->page()->runJavaScript("createRadioButton(\"button1\");");
}
我遇到了这个问题,
runJavascript
没有任何效果。我必须将一些html内容放入视图中(使用page().setHtml(“”)
在运行它之前。检查应用程序输出,它可能包含JavaScript错误。即使您的JS代码有效,您也可能会遇到脚本在DOMContentLoaded
事件之前运行的情况,即document.readyState=='loading'
。因此,DOM可能还不可用由其他脚本提供的可启用项或函数。如果您的代码运行依赖于它们,当您检测到此readyState
时,请等待事件或稍后在超时后尝试调用该函数。如果您需要获取代码执行的结果,则可能需要第二种超时方法,因为这只能通过同步完成非常感谢。很高兴听到这个消息!如果答案适合你,请随意接受,因为它也可以帮助其他人。