これは機能しないのは、Chrome拡張機能(通常はコンテンツスクリプト内)によって追加されたJavaScriptが、ページが読み込まれるJavaScript環境にアクセスできない独自のサンドボックス内で実行されるためです。あなたの目標は、本当にラップすることです
Here are some examples of what content scripts can do:
* Find unlinked URLs in web pages and convert them into hyperlinks
* Increase the font size to make text more legible
* Find and process microformat data in the DOM
However, content scripts have some limitations. They cannot:
* Use chrome.* APIs (except for parts of chrome.extension)
* Use variables or functions defined by their extension's pages
* Use variables or functions defined by web pages or by other content scripts
場合/ネイティブのJavaScript/DOMアクセスメソッドをオーバーライド(む〜、悪いと思われる)、そして一つの方法:ここで
が
Chrome Extensionから来たJavaScriptの制限がありますこのページのコンテキストでJavaScriptを実行するには、外部にホストされているJavaScriptファイルa次に、Chrome拡張機能を使用して、外部でホストされているファイルを参照するページのDOMに
script
要素を追加します。この方法で挿入されたJavaScriptは、JavaScript環境で実行されます(つまり、Chrome拡張機能では使用できません)。その後
http://externally/hosted/javascript.js
にあるファイル内のJavaScriptコードは、あなたが上記の持っているコードである可能性があり
document.body.appendChild(document.createElement("script")).src = "http://externally/hosted/javascript.js";
:
クローム拡張JavaScriptがようなものになるだろう。