我需要在我的应用程序加载时将java脚本对象加载到QwebKit中
我可以使用setHtml与html和java脚本字符串格式化但很难
维护。
我的问题是我可以将html和java脚本作为资源嵌入到Qwebkit中吗?
此外,我不知道应用程序用户可以使用html和javascript
答案 0 :(得分:3)
是的,你可以。
只需将您的JS / CSS添加到资源文件中(如果您不知道如何查找Qt文档),然后在HTML中使用qrc:/file/path/or/alias
。
例如,如果我将JQuery添加到资源文件中,别名为/js/jquery
,然后加载它,我会将其放入我的HTML文件中:
<script type="text/javascript" src="qrc:/js/jquery"></script>
从资源文件加载HTML文件似乎更省力,因为我似乎无法使QWebKit::setUrl(QUrl("qrc:/resource/path"))
工作(“:/ resource / path”对我来说也不起作用)。我现在所做的是:
QString readFile (const QString& filename)
{
QFile file(filename);
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream stream(&file);
return stream.readAll();
}
return "";
}
...
myWebKitObject->setHtml(readFile("qrc:/html/index"));
创建指向其他HTML资源的链接可能是个问题。如果有人知道如何处理这个,请评论! (我想你可以通过重新实现网络管理器类来拦截webkit发送http请求时,如果它们用于qrc:/ urls,从资源系统读取文件并回复,尽管那时你必须管理mime类型等等(例如,如果资源是图像)你自己......)