2012-01-18 11 views
15

ページにJSのスニペットを実行するChrome拡張機能を書き込むと、作成したiframeでも実行されますか?もしそうなら、これは、DOMがロードされた後にJavascriptによって作成されたiframeに適用されますか?Chrome拡張機能はiframeにアクセスしますか?

ありがとうございます!

答えて

29

はい、Chrome拡張機能の「コンテンツスクリプト」はすべてのiframe(ページが読み込まれると最初はHTMLにあります)で実行できます。あなたがall_framesプロパティを使用してクロム拡張manifest.jsonをでそうするように設定する必要があるすべてのフレームで実行するコンテンツスクリプトを持っているために:

http://code.google.com/chrome/extensions/content_scripts.html

{ 
    "name": "My extension", 
    ... 
    "content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*"], 
     "css": ["mystyles.css"], 
     "js": ["jquery.js", "myscript.js"], 
     "all_frames": true 
    } 
    ], 
    ... 
} 

いいえ、コンテンツのスクリプトがするNOTは、ページ内のJavaScript経由で動的に読み込まれたiframeで実行されます。

+0

動的に読み込まれたJSでコンテンツスクリプトを実行する方法はありますか?それとも不可能なのでしょうか? – Honoki

+0

@Honoki私は、ページがロードされた後にJavaScriptで動的に追加されたiframeにJSを追加するChrome拡張機能を取得する方法はないとは思います。しかしiframeの内容を制御するなら、あなたが望むものを何でもすることができます。 iframeに何をロードしようとしていますか?たぶんあなたが必要とすることができるWeb APIがあります.Yahoo Pipe + YQLは素晴らしいWeb/REST APIを持たない他のサイトからコンテンツを取得するのに便利です。 –

+0

私の実験では、新しく作成されたiframeでcontentscripts *が*実行されるように見えます... iframeごとに1回ずつcontentcript.jsを別々に実行していることにも注意してください(理論的には、 )、かつてはメイン文書のために... – rogerdpack

関連する問題