• 締切済み

innerHTMLに代入したインラインフレームのDIVの値の取得について

下記のソースは「読み込み」ボタンを押した時にあらかじめ用意してた<div id="box">にインラインフレームを代入し、「値取得」ボタンを押したら、'sample.html'内のdivの値「keisan」をアラートで表示する記述です。このソース内容を、ボタンのイベントで「keisan」の値を取得するのではなく、<body>のonLoadでページを開いた瞬間にアラートが 出るようにしたいのですが、お分かりになる方はいらっしゃいますでしょうか? わかりにくい説明ですみません。どうかよろしくお願いします。 <html> <head></head> <body> <div id="box"></div> <input type="button" value="読み込み" onClick="Details.changeURL('sample.html')" /> <input type="button" value="値取得" onClick="Details.showMessage('keisan')" /> </body> <script type="text/javascript"> <!-- var Details = (function(){ var handle = document.getElementById('box'); var buffer = null; return { changeURL: function(url){ handle.innerHTML = "<iframe src=\""+url+"\" id=\"ifr\"></iframe>"; }, showMessage: function(id){ buffer = document.getElementById('ifr').contentWindow.document; alert(buffer.getElementById(id).innerHTML); } } })(); //--> </script> </html>

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

onloadでやるなら、わざわざスクリプトで書き換える必要もないので… <div id="box"> <iframe src="sample.html" onload=" alert(this.contentWindow.document.getElementById('keisan').innerHTML); "></iframe> </div> とか?

buuuko_001
質問者

お礼

ご連絡遅くなって申しわけございません!お忙しい中、ご回答いただきましてありがとうございました! 今回の質問事項が納期直前の案件で私のレベルじゃとても解けない難題でございまして(><)! 本当に助かりました! iframeの中にinnerHTMLの記述ができるなんてfujillinさんに 教えていただかなかったら、想像もできませんでした! また機会がございまいたらご教授よろしくお願いします。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

handle.innerHTML = "<iframe src=\""+url+"\" id=\"ifr\"></iframe>"; を handle.innerHTML = "<iframe src=\""+ url +"\" id=\"ifr\" onload=\"Details.showMessage('keisan');\"></iframe>"; とし、 <body onload="Details.changeURL('sample.html')"> とすれば?

buuuko_001
質問者

お礼

ご連絡遅くなって申しわけございません!お忙しい中、ご回答いただきましてありがとうございました! 今回の質問事項が納期直前の案件で私のレベルじゃとても解けない難題でございまして(><)! 本当に助かりました! BODY onLoadでまずHTMLソースを表示させる関数を実行し、 iframeでさらにIDを取得できるonLoadできるとは… 私の思考回路及び処理能力ではとても思いつかない記述で 感動いたしました。本当に感謝いたします。 また機会がございましたら御教授よろしくお願いいたします。

関連するQ&A