Можно ли встраивать html с js в QwebKit - PullRequest
2 голосов
/ 24 октября 2010

мне нужно будет загружать объекты java-скрипта в QwebKit, когда загружается мое приложение
Я могу использовать setHtml с отформатированным html и строкой java-скрипта, но его очень сложно поддерживать.
Мой вопрос: могу ли я вставитьhtml и java-скрипт как ресурс в Qwebkit?
Также я не знаю, что html и javascript будут доступны пользователям приложения

1 Ответ

3 голосов
/ 26 октября 2010

Да, вы можете.

Просто добавьте свой 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и такие (например, если ресурс представляет собой изображение) сами ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...