首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QWebFrame::evaluateJavaScript与HTML中的script-tag

QWebFrame::evaluateJavaScript与HTML中的script-tag
EN

Stack Overflow用户
提问于 2010-05-17 02:03:34
回答 1查看 1.8K关注 0票数 2

我想开发一个使用QtWebKit和JQuery的应用程序。

我需要知道的是,从文件中读取JQuery并将其作为脚本标记嵌入到小部件中显示的“evaluateJavaScript”中,有什么区别吗?

编辑:似乎我至少部分弄清楚了这一点。evaluateJavaScript显然可以可靠地工作;但是如果我这样做了

代码语言:javascript
运行
复制
baseurl = QUrl.fromLocalFile(
  QDir.current().absoluteFilePath("doesntexist.html"));
view.setHtml(
  u"""
    <html>
      <head>
        <script type="text/javascript" 
          src="jquery-1.4.2.js">
        </script>
      </head>
      <body></body>
    </html>""", baseurl);

该文件甚至从不从磁盘读取(使用inotify检查)。这也会影响使用以下任一方法初始化的baseurl

代码语言:javascript
运行
复制
QUrl("file:/")
QUrl(".");
QUrl();

代码语言:javascript
运行
复制
QUrl("file://")

我还尝试将脚本src参数更改为硬盘驱动器上的绝对路径,以及前面包含和不包含"./“的相对路径。

除了Qt资源系统之外,我如何正确地使用脚本标记来处理本地js文件?这只是文档记录很少,还是我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2011-08-17 12:42:45

您可以使用Qt Resource System并将您的html修改为如下所示

代码语言:javascript
运行
复制
<script type="text/javascript" 
      src=":/jquery-1.4.2.js">

别忘了main中的call宏Q_INIT_RESOURCE

或者使用evaluateJavaScript

代码语言:javascript
运行
复制
connect(view, SIGNAL(loadFinished(bool)), this, SLOT(loadJQuery()));

...

void MainWindow::loadJQuery()
{
  QFile file("jquery-1.4.2.js");
  file.open(QFile::ReadOnly);
  view->page()->mainFrame()->evaluateJavaScript(file.readAll());
}

我想使用资源系统会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2844845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档