qt调用javascript

  Qt有一个叫QWebView的类,它是基于WebKit引擎的浏览器。除此之类Qt还有可以显示HTML代码的部件如QTextEdit等,为我们提示了丰富、实用、简便和意想不到的功能。Qt的扩展性非常好,它可以允许你的C++代码与网页里的Javascript进行交互。这里分享一下自己使用C++执行网页的Javascript函数的一点经验。

    调用Javascript代码是通过QWebFrame类的evaluateJavaScript函数来实现的。下面是一个例子,我写了一个本地的HTML文件如下:

<html>
<head>
<script type="text/javascript" src="test.js">
</script>
</head>

<body>
<form>
<input type="button" value="Click me!" οnclick="Test()" >
</form>
</body>
</html>

这个简单的网页有一个按钮,点击后调用Test函数,而Test函数是在一个test.js的Javascript文件,文件内容如下:

function Test() {
alert("Test");
}

function add() {

return 33;

}

建立一个工程,加入一个QWebView,初始化载入Test.html,

ui.webView->load(QUrl("test.html"));

再加入一个按钮,为了调用Javascript,然后在按钮点击时就可以用C++代码:

ui.webView->page()->mainFrame()->evaluateJavaScript("Test()");

运行后可以看到网页弹出了一个提示框。这和在网页里面点击按钮的效果是一样的。

 

附注:

如果是qt调用js函数,js函数带参数时,要多注意, 在qt里该函数调用方法要写成:

QString method = QString("jsFunction(\"%1\", \"%2\")").arg(param1).arg(param2);

m_web_view->page()->mainFrame()->evaluateJavaScript(method);

参数两边的引号必不可少,而且要转义符转义。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值