如何从Qt调用evaluateJavaScript()函数?

时间:2012-09-25 07:43:48

标签: javascript qt qwebview

我无法从QT调用javascript函数。

我正在使用以下代码

QT代码:
    QWebFrame *frame = m_d->m_webView->page()->mainFrame();     frame->evaluateJavaScript("displayhello()");

 Here `displayhello()` is the `Javascript` function defined in the HTML file.

HTML code:

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

<script type="text/javascript">
   function displaymessage(str)
   {
       alert(str);
   }
   function displayhello()
   {
       alert("Hello");
   }
</script>
</head>
<body>
<form>
<input type="button" value="Click me!" onClick="displayhello()">
</form>
</body>
</html>

任何人都可以给我任何指示为什么Javascript函数没有被调用。

3 个答案:

答案 0 :(得分:4)

我知道这篇文章已经过时了,但是如果有人有同样的话:

始终检查开发工具以查看JavaScript控制台告诉您的内容。 您可以通过在QT主函数中添加此行来启用devtools

QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);

现在通过右击 - &gt; inspect,console,你会看到JS解释错误。

答案 1 :(得分:0)

你应该在'onclick'中使用小写'c':

<input type="button" value="Click me!" onclick="displayhello()">

答案 2 :(得分:0)

QVariant holdInformation = map->page()->mainFrame()->evaluateJavaScript (QString ("displayhello ()"));

map替换为您想要的班级名称。

另外,请尝试使用onload <body onload = "displayhello()" topmargin = "0" leftmargin = "0">