我創建一個Chrome擴展程序追加script
標籤頁,然後使用該外部腳本定義代碼:Chrome擴展:注射外部腳本
$('body').append('<script src="..."></script><script>console.log(SomeObject)</script>');
SomeObject
在外部腳本中定義,所以我應該可以訪問它,對吧?那麼,我不能,因爲我得到一個「未定義」的錯誤。
我甚至嘗試使用head.js
加載外部腳本並在加載腳本後執行一個函數,但無濟於事。
如果我打開Chrome控制檯,我可以訪問該死的對象就好!
我試了一個內容腳本和executeScript
內的背景頁面無濟於事。在兩者上,如果我使用console.log(window)
,我可以檢查控制檯中的window
對象,並且無法找到SomeObject
。如果我檢查Chrome控制檯上的window
對象,那就是!
被注入的腳本sandboxed不知何故或什麼給?
謝謝!
我也這麼認爲,這就是爲什麼我嘗試使用'head.js'。但我也嘗試了你的建議,它仍然不會工作:( – Ivan