QWebEngine加载本地js文件到网页
发布日期:2022-02-24 11:35:55 浏览次数:7 分类:技术文章

本文共 947 字,大约阅读时间需要 3 分钟。

QT提供了例子说明如何加载本地的jquery文件。网上也有很多如何利用QWebChannel实现C++与JS互相通信的例子。

下面总结一下如何将qwebchannel.js加载到非本地网页(qwebchannel.js在QT的安装目录可以搜索到)。

1 打开qwebchannel.js文件

QString script;   //类的成员函数

 QFile jsFile("c:/channel/qwebchannel.js");

    if (jsFile.open(QIODevice::ReadOnly)){

        script = jsFile.readAll();

        jsFile.close();

}

2 运行(注意要在网站加载完后再运行)

m_webView->page()->runJavaScript(script);

3 C++端创建QWebChannel实例,并注册通信对象

    m_webChannel = new QWebChannel();

    m_webChannel->registerObject(QStringLiteral("webobj"),this);

m_webView->page()->setWebChannel(m_webChannel);

4 在网页运行js,并且调用C++端的函数

   QString code = QStringLiteral("$('body').append('<script>" \

                          "new QWebChannel(qt.webChannelTransport,function(channel){" \

                          "var webobj=channel.objects.webobj;webobj.jscallme();}" \

                          ");<\/script>')");

m_webView->page()->runJavaScript(code);

jscallme函数是C++端定义的函数:QMessageBox::information(nullptr,"jscallme","中国123");

需要更多js与C++交互例子可以看博文:https://blog.csdn.net/sunnyloves/article/details/88683090

转载地址:https://blog.csdn.net/hulinhulin/article/details/119790602 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:QWebEngine登录网页并获取数据
下一篇:Qt5中使用lambda表达式

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月22日 10时59分29秒