2016-03-29 19 views
0

間の通信Iこれが働いていると、それはfunctionInMyWebPage()機能を起動、WebページのJavaScriptChromeの拡張機能:コンテンツスクリプトとWebページのスクリプト

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

で関数を呼び出している私のコンテンツのスクリプトに次のコードを持っています。

ここで、このfunctionInMyWebPage()の戻り値を取得し、コンテンツスクリプト自体で定義された別の関数を呼び出す必要があります。上記のスクリプトブロックでそれを呼び出すと、定義されていないので文句を言います。

+0

人の理由を説明してください!あなたの答えは何でもかまいませんが、愚かな質問であることを証明するのに十分な証拠を必要とする質問に投票してください! –

答えて

1

コンテンツスクリプトは、分離された世界と呼ばれる特別な環境で実行されます。彼らは注入されたページのDOMにアクセスできますが、ページで作成されたJavaScript変数や関数にはアクセスできません。実行中のページで他のJavaScriptが実行されていないかのように、各コンテンツスクリプトを探します。逆も同様です。ページ上で実行されているJavaScriptは、関数を呼び出すことも、コンテンツスクリプトによって定義された変数にアクセスすることもできません。ダウン投票

詳細情報Content script execution environment

関連する問題