プロが教えるわが家の防犯対策術!

下記のソースは「読み込み」ボタンを押した時にあらかじめ用意してた<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>

A 回答 (2件)

onloadでやるなら、わざわざスクリプトで書き換える必要もないので…



<div id="box">
<iframe src="sample.html" onload="
alert(this.contentWindow.document.getElementById('keisan').innerHTML);
"></iframe>
</div>

とか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/03/15 08:34

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')">
とすれば?
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/03/15 08:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!