所以我使用Electron框架來構建一個應用程序來加載頁面並將自己的腳本注入到它中。然而,module
在全球範圍內被定義和腳本jQuery
沒有看到因爲這個如何在DOM完全加載之前在DOM頭插入腳本標記?
if (typeof module === "object" && typeof module.exports === "object") {
// set jQuery in `module`
} else {
// set jQuery in `window`
}
這是因爲節點整合被打開,我要爲我注入腳本運行window
對象。這個問題,結果是客戶端腳本無法正常工作,我看到這樣的錯誤
Uncaught ReferenceError: jQuery is not defined
custom.min.js:1 Uncaught ReferenceError: jQuery is not defined
homeOffer.min.js:1 Uncaught ReferenceError: $ is not defined
main.js:48 Uncaught ReferenceError: $ is not defined
如果我在客戶端頁面運行的任何腳本之前設置window.module = undefined
,然後正常工作。
我想修改DOM,方法是在任何腳本運行之前插入一個腳本標記,它將module
設置爲undefined
。
我有document
對象的句柄,我嘗試下面的
document.addEventListener("DOMContentLoaded", function(event) {
var s = document.createElement("script");
s.innerHTML = "console.log('hello from script'); window.module = undefined;";
document.head.insertBefore(s, document.head.childNodes[0]);
console.log('dom loaded');
});
然而,問題是事件DOMContentLoaded
因此它不會在DOM被解析,如果解僱,所有腳本運行爲此目的服務。
我的問題是有可能在任何腳本在客戶端頁面上運行之前運行我的腳本標記?