1

iframe 内に iframe.html をロードし、その iframe を Chrome 拡張機能から現在のページの DOM に追加しようとしています。私はそうしましたが、クリックイベントを処理し、フレーム要素の値(入力、選択ボックス)を取得できます。ここまでは大丈夫です。今問題は、iframe.html 内のコンテンツを DOM に挿入すると変更できなかったことです (より具体的には、iframe.html [DOM に追加された] に入力ボックスがあり、値は次のとおりです。 "XXXX" を、ユーザーが拡張機能のコンテキスト メニューをクリックしたときに "YYYY" に変更したい)。

を使用して入力ボックスの値を取得しようとしました

$('#iframe_id').contents().find('input#input_id').val('YYYY')
(or)
window.frames['iframe_id'].document.getElementId('input_id').value

私のcontent.jsでは役に立ちません。

console.log($('#iframe_id'))

コンソールに iframe オブジェクトを出力しますが、iframe ドキュメントのコンテンツを取得できません。これは、クロム拡張機能によって挿入された iframe コンテンツを取得/変更する正しい方法ですか? または、ここで chrome.* API から何か不足していますか?

これを解決する方法についての指針は、より役に立ちます。

TIA、ジャガディーシュ

4

2 に答える 2

0

Mike Grace が述べたように、iframe の代わりに html を挿入し、どの Web ページでも機能するように css を作成しました。これは、長期的にはより良いアプローチになります。

于 2013-01-21T18:23:20.163 に答える
0

iframe とトップレベル ページのドメインとプロトコルが一致しないため、問題が発生していると思われます。これはページのセキュリティ制限です。これが問題の説明である場合は、iframe postMessage API を使用して制限を回避できます。

于 2012-08-25T23:55:15.690 に答える