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
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>
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.
Actually you can. You just need to add file:// at the begining of your src.
file:///home/js/somejs.js