這個JavaScript語句在以前版本的Chrome有效(如一個Chrome擴展content.js的一部分)在4個月前:Chrome控制檯和頁內JavaScript有什麼區別?
require(["function-widget-1:share/util/service/createLinkShare.js"]).prototype.makePrivatePassword=function(){return prompt("Some Massage:","")};
但現在(在最新的Chrome,以及Chrome的擴充content.js的一部分)它是無效的,並且錯誤消息是「Uncaught ReferenceError:require is not defined」。
但是,如果我在Chrome控制檯中鍵入相同的語句(如在開發人員工具中),它現在(在最新的Chrome中)仍然有效。
所以我的問題是: 這兩種情況的區別是什麼?
'require'在我的Chrome中不是一個已定義的函數...你確定你沒有在某個地方包含'require'實現嗎? – deceze
@deceze我相信它包含在擴展本應該工作的頁面中 –
控制檯有一個上下文選擇器。默認情況下它是頁面本身。爲了讓您的擴展訪問頁面上下文,您需要將代碼插入到腳本元素中,否則內容腳本無法訪問頁面功能,因爲它運行在獨立的環境中。 – wOxxOm