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

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

  1. ui->axWidget->setControl("Shell.Explorer");
  2. ui->axWidget->dynamicCall("Navigate(QString)", "C:/1.html");

当然,上面的"C:/1.html"是我测试的页面

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

  1. #include <MsHTML.h>
  2. {
  3. QAxObject *document = ui->axWidget->querySubObject("Document");
  4. IHTMLDocument2 *doc2;
  5. document->queryInterface(QUuid(IID_IHTMLDocument2), (void**)&doc2);
  6. if (doc2)
  7. {
  8. IHTMLWindow2 *win2 = nullptr;
  9. if (doc2->get_parentWindow(&win2) == S_OK)
  10. {
  11. BSTR s1 = SysAllocString(L"Test()");
  12. BSTR s2 = SysAllocString(L"JavaScript");
  13. VARIANT ret;
  14. win2->execScript(s1, s2, &ret);
  15. SysFreeString(s2);
  16. SysFreeString(s1);
  17. }
  18. }
  19. }

JavaScript函数如下

    1. <script language="javascript" type="text/javascript">
    2. function Test()
    3. {
    4. alert("你调用了全局函数Test");
    5. }
    6. </script>

http://blog.csdn.net/aqtata/article/details/9471959

使用WebBrowser并调用网页中的JS函数的更多相关文章

  1. jquery操作iframe中的js函数

    关键字:jquery操作iframe中的js函数 1.jquery操作iframe中的元素(2种方式) var tha = $(window.frames["core_content&quo ...

  2. 向网页中写入js和css

    向网页中写入js和css 本函数由前辈所写 loadFile: function (url, ftype) { var fileref; if (ftype == "js") { ...

  3. JSF页面中使用js函数回调后台bean方法并获取返回值的方法

    由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...

  4. Qt调用dll中的功能函数

    声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下:   ...

  5. 在Kotlin中 使用js 函数

    在Kotlin中 使用js 函数 import javax.script.Invocable import javax.script.ScriptEngineManager fun main(args ...

  6. 利用Google Chrome开发插件,在网页中植入js代码

    Google Chrome是一个很强大的浏览器,提供了各种各样的插件,大大提升了使用了的效率,比如vimium.honx等. Google在提供这些插件的同时还允许用户开发自己的插件. 最近在写js的 ...

  7. JSF页面中使用js函数回调后台action方法

    最近遇到了一个问题就是在JSF页面中嵌入html页面,这个html页面中很多功能是使用js动态生成的,现在需要在js函数里想去调用JSF中action类method()方法并动态传送数据给后台进行处理 ...

  8. a标签中执行js函数

    在a标签中调用js函数最适当的方法推荐使用: 1.a href="javascript:void(0);" onclick="js_method()" 这种方法 ...

  9. 调用iframe 中的js[兼容各种浏览器]

    *chrome浏览器需要在服务器环境中测试 <!DOCTYPE html> <html> <head> <meta http-equiv="cont ...

随机推荐

  1. [转]mnesia数据库学习笔记

    mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四

  2. 关于用什么作为dll版本号的思考

    作者:朱金灿 来源:http://blog.csdn.net/clever101 一个软件模块的版本如何维护呢?毫无疑问,它需要一个版本号.通过比对版本号就知道哪个高版本,哪个是低版本了.软件模块以d ...

  3. BZOJ 1864 三色二叉树 - 树型dp

    传送门 题目大意: 给一颗二叉树染色红绿蓝,父亲和儿子颜色必须不同,两个儿子颜色必须不同,问最多和最少能染多少个绿色的. 题目分析: 裸的树型dp:\(dp[u][col][type]\)表示u节点染 ...

  4. MySQL分区表使用方法

    原文:MySQL分区表使用方法 1. 确认MySQL服务器是否支持分区表 命令: show plugins; 2. MySQL分区表的特点 在逻辑上为一个表,在物理上存储在多个文件中 HASH分区(H ...

  5. [MFC]SDI在图片背景上实现文本跟随鼠标移动

    SDI是单文档接口应用程序的简称.本文要实现的是在视图区域显示一张图片,然后在图片表层显示文字,并且文字跟随鼠标移动.思考一下,可以判断这个问题一共分为以下几个部分:1.显示图片:2.找到鼠标的位置: ...

  6. NET Framework、.NET Core、Xamarin

    认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET Core.Xamarin三驾马车 其中.NET Framework是基于Windows平台专属的开 ...

  7. Android SDK location should not contain whitespace, as this cause problems with NDK tools

    解决方案一: The easiest solution is to move the SDK somewhere else, where there is no space or other whit ...

  8. APP压力測试新手教程

    Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和測试方面干了七年,自2010年,他一直在德国汉堡的XING AG公司就职,几个项目里,比方XING调查和XING建议,他 ...

  9. 《深入浅出WPF》笔记——模板篇

    原文:<深入浅出WPF>笔记--模板篇 我们通常说的模板是用来参照的,同样在WPF中,模板是用来作为制作控件的参照. 一.认识模板 1.1WPF菜鸟看模板 前面的记录有提过,控件主要是算法 ...

  10. wxWidgets谁刚开始学习指南(5)——使用wxSmith可视化设计

    wxWidgets谁刚开始学习的整个文件夹指南   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用w ...