0

Gmailの上部の黒いバーの[その他]の後にテキストを追加するChrome拡張機能(コンテンツスクリプト)を作成しています。これらの要素はcanvas_frameiframeにカプセル化されています。

これらの要素にアクセスしようとすると、次のようになります。

document.getElementById('canvas_frame').contentWindow.document.getElementById('gbz').innerHTML = scr;

取得しUncaught TypeError: Cannot read property 'document' of undefinedます。しかし、そのコードをChromeデベロッパーコンソールに直接入力すると、機能します。どうしてこれなの?Chrome拡張機能からその要素にアクセスして変更するにはどうすればよいですか。

私はjavascriptを初めて使用するので、明らかな何かが欠けている可能性があります。ありがとう。

4

2 に答える 2

0

試す

document.getElementById('canvas_frame').contentDocument.document.getElementById('gbz').innerHTML = src;
于 2012-08-15T04:49:44.403 に答える
0

私は自分で Chrome 拡張機能を構築しましたが、この問題に遭遇しました。それを軽減する方法がいくつかあります。1 つは JS で #canvas_frame を探してタイマー ループを実行し、それを見つけたら停止することです。もう 1 つは DOM をリッスンすることです。ノード挿入イベントを繰り返します。探している要素が挿入されている場合は、やりたいことを始めます。

canvas_frame は、必要な場合に Gmail がやり取りする「コンテンツ領域」要素ですが、現在 (数日前の時点で) content_frame を持たない Google Apps Gmail のインスタンスに遭遇しました。 、ページがロードされてから削除される瞬間に1つ持っています.Googleが何をしているかわからない.拡張機能開発者としてのなすがままに...

于 2012-09-24T15:17:07.290 に答える