2

私はいくつかの診断ツールを書いており、そのためのクロム拡張機能を作成しようとしています. 私が持っているのは、iframe のあるページです。iframe には、 に敷設されているサイトが含まれていdiffrent domainます。

私が必要としているのは、これら 2 つのサイト間の通信です。私が理解したのは、content scriptこれらの各ドキュメント (iframe ドキュメントとトップ ウィンドウ ドキュメント) に を追加するだけで、background scriptと メッセージ フローによってそれらの間の通信を設定できるということです。

問題は、現在 iframe 内のドキュメントのアドレスがわからないことです。ユーザーは複数の異なるページを iframe に入れることができます。このため、プロパティに何を入れるかわからないため、ファイルをcontent script使用して追加できません。manifest.jsonmatches

フラグをtrueに設定してchrome.tabs.executeScriptメソッドを使用しようとしました。allFramesiframe ドキュメントがトップ ウィンドウ ドキュメントと同じドメインにある場合は正常に機能しましたが、別のドメインにある場合はcontent scriptフレーム ドキュメントに追加されません。

設計時にiframeのURLを知っていれば、マニフェストファイルからそのようにスクリプトを追加できるため、問題は奇妙です...

このような状況で iframe ドキュメントにコンテンツ スクリプトを追加するにはどうすればよいですか?

また、ファイル内のすべてのページへのアクセス許可があることもお伝えしmanifest.jsonます。次のように表示されます"permissions": ["tabs", "http://*/", "https://*/"]。追加の障害は、iframe ドキュメント コンテンツに統合できないことです。これはサードパーティ コードです。

何か案は?助けてくれてありがとう。

4

1 に答える 1

2

Rob Wコメントに続いて、問題はタイミングでした。スクリプトが読み込まれる前に iframe にスクリプトを挿入しようとしていました。メソッドを呼び出す必要がonloadある瞬間を判断するために、iframe でイベントを使用しました。executeScript

今、すべてが正常に動作します。ありがとうロブ。

于 2012-08-11T14:54:40.460 に答える