こうですか?
https://gist.github.com/1396045
本当はiframeが読み込み完了するまで待つ処理を入れたほうがよさそう。
JavaScriptの動かないコード (中級編) iframe内にDOMアクセスできないエラー - 主に言語とシステム開発に関して
こんな感じ?
■親A
<html> <script> function bind_display_bbb() { // iframe を表す window オブジェクト var f = frames[0]; // iframe の document から、ボタンの要素を取得 var btn = f.document.getElementById("btn"); // iframe 内のボタンに、onclick イベントを登録する if (btn) { btn.onclick = function () { // 要素 BBB を取得 var bbb = f.document.getElementById("BBB"); // BBB の TAG NAME を alert() alert(bbb.tagName); }; } } window.onload = function() { if (document.all) { // IE の場合 document.getElementById("f").onreadystatechange = bind_display_bbb; } else { // Firefox の場合 document.getElementById("f").onload = bind_display_bbb; } }; </script> <body> <iframe src="b.html" id="f"></iframe> </body> </html>
■子B
<html> <body> <a href="c.html">display c</a> </body> </html>
■子C
<html> <body> <h1 id="BBB">I'm BBB</h1> <button id="btn">click me</button> </body> </html>
子C のページのドメインは、親A と同じドメインであることが必要です。
iframe の onload でフレーム内のページからボタンを探して、onclick イベントを登録します。
イベントとして登録する関数は、親のコードなので、子C の要素に登録するとしても、
document.getElementById("BBB") では、#BBB を取得することができません。
iframe の onload でいけると思ったんですが、IE ではイベントが発火しませんでした。
IE の場合 (判定は手抜きです) には、iframe の onreadystatechange を使います。
できません。