一旦它完全加載到WebEngineView
中,我將爲網頁添加腳本標記,但它以某種方式默默無聞。如何將JavaScript文件注入WebEngineView頁面?
var s = document.createElement('script');
s.src = "qrc:/jquery-2.1.4.min.js";
document.body.appendChild(s);
這完全標準,在一定程度上能夠正常運行,也就是說,如果我查看該頁面的html
源,腳本標籤:
我用這個代碼調用webview.runJavaScript
注入腳本確實已附加到身體。
問題是腳本沒有被下載,或者沒有被評估,或者什麼。我所知道的是在上面的例子中,jQuery函數不可用。如果我加載一個帶有一個全局變量的小型JavaScript測試文件,那麼該變量也不可用。將url更改爲http而不是qrc並將其指向Web服務器沒有任何區別。
注入img
標籤正常工作;圖像被加載並顯示。
但JavaScript以某種方式被破壞。有誰知道如何解決這一問題?
它看起來像問題不是與腳本本身,但與什麼應該運行腳本,它是鏈接到一個按鈕或其他事件? – Marco
謝謝你的評論 - 它讓我找到了正確的解決方案。該腳本正在從webview的信號中運行,即該頁面已完成加載。當我把腳本分成三個獨立的部分並將它們附加到三個不同的按鈕時,它就起作用了,這讓我意識到這是異步調用/函數執行速度太快的問題。這引導我到下面發佈的解決方案。 – WaltPurvis