【Qt】使用WebBrowser并调用网页中的JS函数

在界面上拖入QAxWidget,注意这里不建议直接在UI设计界面指定控件,否则可能引起QtCreator崩溃

建议在代码中动态设置,如:

ui->axWidget->setControl("Shell.Explorer");ui->axWidget->dynamicCall("Navigate(QString)", "C:/1.html");当然,上面的"C:/1.html"是我测试的页面

这里的办法是通过IHTMLWindow2接口的execScript方法执行JavaScript函数。可惜的是这个方法不支持函数返回值

#include <MsHTML.h>{QAxObject *document = ui->axWidget->querySubObject("Document");IHTMLDocument2 *doc2;document->queryInterface(QUuid(IID_IHTMLDocument2), (void**)&doc2);if (doc2){IHTMLWindow2 *win2 = nullptr;if (doc2->get_parentWindow(&win2) == S_OK){BSTR s1 = SysAllocString(L"Test()");BSTR s2 = SysAllocString(L"JavaScript");VARIANT ret;win2->execScript(s1, s2, &ret);SysFreeString(s2);SysFreeString(s1);}}}

JavaScript函数如下

<script language="javascript" type="text/javascript">function Test(){alert("你调用了全局函数Test");}</script>

,也许不是自己该去发挥的地方,还是让自己到最适合自己战斗的方面去吧!勇敢的接受自己的失败,

【Qt】使用WebBrowser并调用网页中的JS函数

相关文章:

你感兴趣的文章:

标签云: