16

ロード時に人気のある Web アプリを変更する必要がある Chrome 拡張機能を作成しています。残念ながら、その Web アプリのほとんどの UI は iframe 内でレンダリングされます。その iframe のアドレスはcontent_scripts一致宣言と一致しますが、ユーザー スクリプトはトップ フレームに対してのみ呼び出されます。

Q: Chrome コンテンツ スクリプト拡張機能から iframe 内にレンダリングされた HTML にアクセスする方法はありますか? はいの場合、どの権限とその他のマニフェスト オプションを指定する必要がありますか? ありがとう。

4

2 に答える 2

39

問題を解決しました。次のオプションは、manifest.json の content_scripts セクションで指定する必要があります: "all_frames": true. これがないと、スクリプトは一番上のフレームにのみ適用されます。

// 慎重に RTFM を行う必要がある場合もあります。

于 2010-10-14T20:53:13.497 に答える
10

@srcのないiframeの場合でも"all_frames": true、役に立たないようです。これはバグhttp://code.google.com/p/chromium/issues/detail?id=20773contentDocumentで説明されており、ソース ページの iframe 要素の取得など、いくつかの回避策もカバーされています$('a', $($("#canvas_frame")[0].contentDocument))

このバグはまさにあなたが抱えていた問題ではありません (コンテンツ スクリプトを iframe 内にロードし、iframe と外側のフレームの間で対話するのではなく)、問題の 1 つを持っているほとんどの人は他の問題を抱えていると思います。良い。

于 2011-03-09T15:36:00.183 に答える