如何在Qt中调用evaluateJavaScript()函数?

4

我无法从QT中调用javascript函数。

我正在使用以下代码:

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

请注意,这段代码将调用名为"displayhello()"的javascript函数。
 Here `displayhello()` is the `Javascript` function defined in the HTML file.

HTML代码:

<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个回答

4

我知道这篇文章有点老,但如果有人也遇到同样的问题:

一定要检查开发者工具并查看JavaScript控制台的提示信息。 您可以通过在QT主函数中添加以下代码来启用开发者工具:

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

现在通过右键单击->检查、控制台,您应该已经看到了JS解释错误。

0

在“onclick”中应该使用小写字母“c”:

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

QWebFrame *frame = m_d->m_webView->page()->mainFrame(); frame->evaluateJavaScript("displayhello()");evaluateJavaScript没有从HTML文件中调用displayhello()。 - tarun
HTML属性名不区分大小写。 - nandhp

0

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

请将map替换为您想要的类名。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接