0

Gmail 拡張機能用の JavaScript コードを記述しようとしています。キャンバス フレームを取得しようとすると、「getElementById」がnull値を返し続けます。

私が使用しているコードは次のとおりです。

var doc2 = document.getElementById('canvas_frame').contentDocument;

次のエラーが表示されます。

"Uncaught TypeError: Cannot read property 'contentDocument' of null"

どうすればこれを解決できますか?

4

1 に答える 1

2

ID を持つ iframecanvas_frameが Gmail に存在する必要がないためです。

関連ドキュメントへの参照を取得するには、まず への参照を取得してみてください。iframe#canvas_frameそれが失敗した場合は、現在のコンテキストが正しいかどうかを確認します。

var doc2 = document.getElementById('canvas_frame');
if (doc2) {
    doc2 = doc2.contentDocument;
} else if (document.getElementById('js_frame')) {
    // If #canvas_frame does not exist, but #js_frame does, then Gmail renders
    // everything in the main (=top) frame
    doc2 = document;
} // else not Gmail's document, and doc2 === null
于 2012-12-25T16:31:26.593 に答える