javascript - iframeを取得するための正しいJavaScript関数とは

javascript

FBアプリケーションを開発したとき、次のようなJavaScriptを使用したキャンバスを取得しようとしました。

作業

document.getElementsByTagName('iframe')[1].id
//Output: iframe_canvas


うまくいかない

window.frames[1].id
//Output: undefined


なぜだかわかりません。その後、SOで回答を探したところ、自分の問題に対する回答とコメントを見つけました。


Invoking JavaScript code in an iframe from the parent page


しかし、私はwhyを本当に理解していません:


IFRAMEがプログラムで作成された場合、 "window.frames"は使用できません。これは、HTMLページソースで宣言されている場合に限られます。 Src @Tomalakのコメント
答え
ブラウザがこれをこのように実装しているためです。 window.framesのようなものは、決して標準の一部ではありませんでした。これが、一貫性がなく、時々貧弱になる理由の1つです。
関連記事

javascript - JavaScriptでのXMLのクエリ

javascript - javascript:WebForm_DoPostBackWithOptionsをデバッグするにはどうすればよいですか?

javascript - Rhino JSインタープリターとSpiderMonkeyインタープリター-異なる戻り値

javascript - jQueryを使用して<head>からすべての<meta ..>を読み取るにはどうすればよいですか?

javascript - 私の最初のWebアプリケーションを構築するための優れたリソース(おそらく、純粋なHTML5 / Javascript / CSS3を使用するだけ)

javascript - ページコンテンツがAjaxで読み込まれた後にJavaScriptを読み込む

javascript - jquery編集可能テーブル:特定のセルを編集可能にするにはどうすればよいですか?

javascript - FlashオブジェクトがフルスクリーンモードであることをJavaScriptから確認する方法

javascript - jqueryを使用して、入力テキストボックスに基づいて使用可能なオプションを変更および表示[削除/追加]

javascript - キャンバスのサイズが相対的な場合、キャンバス上の正しいマウス位置を取得しますか?