首先,Rob W說的非常重要,如果您還不知道它,對內容腳本運行的不同環境的一個很好的解釋很有用。
您可能想檢查this了。這不是100%你正在尋找,但主要部分在那裏。基本上從你的背景頁面(如果你還沒有創建一個),你可以使用chrome.tabs.executeScript()來執行你下載的腳本。它在真實頁面上下文中運行JavaScript,而不是「內容腳本」上下文。您現在需要的只是將該腳本(以字符串形式)提供給後臺頁面,並確定要執行的腳本(來自發件人選項卡)
您可以使用chrome.extension.sendMessage將其發送到後臺頁面,在background.js中,使用chrome.extension.onMessage通過腳本接收消息。從那裏使用sender參數來獲取tabId(sender.tab.id),並構建你的executeScript調用。
還有一個有用的提示,在默認情況下,Chrome瀏覽器網頁腳本(動態JavaScript執行)沒有在Chrome調試任何一組的方式顯示出來,但可以追加像這樣你的JavaScript字符串: "\n//@ sourceURL=/myFolder/myDynamicJavascript.js"
這將使該腳本始終顯示爲chrome調試器的「/myFolder/myDynamicJavascript.js」路徑,允許您在已插入的js代碼中設置斷點。這是一個救生員。
請嘗試:http://developer.chrome.com/extensions/contentSecurityPolicy.html – HaNdTriX
@HaNdTriX不適用於內容腳本。 –
@DudeOnRock您是否知道內容腳本的執行上下文與頁面的執行上下文之間的區別? –