javascript - Qt函数runJavaScript()不执行JavaScript代码

标签 javascript html qt qtwebengine

我正在尝试在 Qt 中实现网页的显示。我选择使用 Qt WebEngine 来完成我的任务。这是我所做的:

  • 编写了一个包含空表单的示例网页。
  • 仅使用一个 API 编写了一个 JS 文件,以在表单内创建一个单选按钮。

在我的代码中,它看起来像这样:

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() 函数对网页没有影响。我可以在输出窗口中看到网页,但我期望的单选按钮不存在。我做错了什么?

最佳答案

我想你必须连接信号 loadFinished(bool)将您的 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\");");
}

关于javascript - Qt函数runJavaScript()不执行JavaScript代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060336/

相关文章:

jquery - 单击添加类

qt - 为什么 QShared Memory 创建大小和返回的大小()不同

javascript - 缩写时区正则表达式

javascript - d3 自定义时间间隔

html - 设置书写模式/文本方向从下到上

c++ - Qt 中的 QT_TRANSLATE_NOOP_UTF8 是什么?

c++ - QSharedMemory::create() 问题

javascript - React 上的缩放模块 d3 出现问题

javascript - 如何在 React Native ListView 中过滤和呈现重复出现的嵌套 JSON 数据?

javascript - 当脚本代码更改文本时返回输入的 javascript 堆栈跟踪