2016-03-29 158 views
0

之間的溝通我有我的內容腳本下面的代碼是調用在網頁中的javascriptChrome擴展:內容腳本和網頁的腳本

var actualCode = '(' + function() { 
functionInMyWebPage(); 
} 
+ ')();'; 
var script = document.createElement('script'); 
script.textContent = actualCode; 
(document.head||document.documentElement).appendChild(script); 
script.parentNode.removeChild(script); 

功能這是工作,它激發了functionInMyWebPage()功能。

現在我需要獲得這個functionInMyWebPage()的返回值並調用在內容腳本本身中定義的另一個函數。如果我在上面的腳本塊中調用它,它會抱怨,因爲它沒有定義。

+0

人誰下投票請解釋一下原因!你的答案可以是任何事情,但是要回答一個問題,你需要有足夠的證據證明這是一個愚蠢的問題! –

回答

1

內容腳本在稱爲孤立世界的特殊環境中執行。他們可以訪問他們注入的頁面的DOM,但不能訪問頁面創建的任何JavaScript變量或函數。它會查看每個內容腳本,就好像其上運行的頁面上沒有執行其他JavaScript一樣。反過來也是如此:頁面上運行的JavaScript不能調用任何函數或訪問由內容腳本定義的任何變量。

更多信息Content script execution environment

相關問題