【问题标题】:Is it possible to embed html with js into QwebKit是否可以将带有js的html嵌入到QwebKit中
【发布时间】:2011-04-29 19:38:57
【问题描述】:

当我的应用程序正在加载时,我是否需要将 java 脚本对象加载到 QwebKit
我可以将 setHtml 与 html 和 java 脚本字符串一起使用,但它很难 维护。
我的问题是我可以将 html 和 java 脚本作为资源嵌入到 Qwebkit 中吗?
另外我不知道应用程序用户可以使用 html 和 javascript

【问题讨论】:

    标签: c++ html qt embed qwebkit


    【解决方案1】:

    是的,你可以。

    只需将您的 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 类型等等(例如,如果资源是图像)你自己......)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-29
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多