4

我无法从 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 代码:

<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函数。

4

3 回答 3

4

我知道这篇文章很旧,但万一有人有同样的情况:

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

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

现在通过右键单击->检查,控制台,您会看到 JS 解释错误。

于 2013-08-05T14:01:18.400 回答
0

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

替换map为您想要的类名。

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

于 2012-09-26T05:05:48.357 回答
0

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

<input type="button" value="Click me!" onclick="displayhello()">
于 2012-09-25T07:45:01.233 回答