QWebView not loading external javascript?

后端 未结 3 945
失恋的感觉
失恋的感觉 2021-01-16 05:51

It is possible to load an external javascript file from the html using QWebView?

In the following QtProject (all files in the same directory) there is javascript cod

相关标签:
3条回答
  • 2021-01-16 06:21

    Alternatively 1:

    It seems the javascript isn't evaluated from the html. In other words, the following has no effect:

    <script type="text/javascript" src="qt.js">
    </script>
    

    It must be done explicitly:

    QString js = readFile("qt.js");
    view->page()->mainFrame()->evaluateJavaScript(js);
    

    And, there is no need to set baseUrl in setHtml().

    Alternatively 2:

    Use the QRC System and set the baseUrl in setHtml. This way doesn't require a call to view->page()->mainFrame()->evaluateJavaScript();

    //    QString js = readFile(":/qt.js");
    //    view->page()->mainFrame()->evaluateJavaScript(js);
    
        QString html = readFile(":/qt.html");
        view->setHtml(html, QUrl("qrc:/"));
    

    application.qrc

    <!DOCTYPE RCC><RCC version="1.0">
    <qresource>
        <file alias="qt.png">resource/qt.png</file>
        <file alias="image.html">resource/image.html</file>
        <file alias="qt.html">resource/qt.html</file>
        <file alias="qt.js">resource/qt.js</file>
    </qresource>
    </RCC>
    
    0 讨论(0)
  • 2021-01-16 06:28

    If you want to load a local html file, first you need to change the src attribute of the javascript, for example:

    then src is changed to src="'file:///D:/home/myWeb/js/myjs.js'"

    this will work. Relative path can also be given.

    0 讨论(0)
  • 2021-01-16 06:31

    Actually you can. You just need to add file:// at the begining of your src.

    file:///home/js/somejs.js
    
    0 讨论(0)
提交回复
热议问题