我想开发一个使用QtWebKit和JQuery的应用程序。
我需要知道的是,从文件中读取JQuery并将其作为脚本标记嵌入到小部件中显示的“evaluateJavaScript”中,有什么区别吗?
编辑:似乎我至少部分弄清楚了这一点。evaluateJavaScript显然可以可靠地工作;但是如果我这样做了
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
QUrl("file:/")
QUrl(".");
QUrl();或
QUrl("file://")我还尝试将脚本src参数更改为硬盘驱动器上的绝对路径,以及前面包含和不包含"./“的相对路径。
除了Qt资源系统之外,我如何正确地使用脚本标记来处理本地js文件?这只是文档记录很少,还是我遗漏了什么?
发布于 2011-08-17 12:42:45
您可以使用Qt Resource System并将您的html修改为如下所示
<script type="text/javascript"
src=":/jquery-1.4.2.js">别忘了main中的call宏Q_INIT_RESOURCE
或者使用evaluateJavaScript
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());
}我想使用资源系统会更好。
https://stackoverflow.com/questions/2844845
复制相似问题