- ベストアンサー
IFRAME内のソースを別のIFRAMEにコピーする方法
ページ内に二つのIFRAMEがあります。 IFRAME-A IFRAME-B IFRAME-Aに表示されるページのHTMLを、IFRAM-Bにコピーする事は可能でしょうか? srcのlocationをコピーするのではなく、HTMLを文字列としてコピーして、IFRAME-Bにも同じ内容を表示したく考えています。 使用するブラウザはIE6/7/8となります。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
jQueryを使うと簡単にできます。(使わなくてもたいして難しくは無いかも) iframe01a.html <!DOCTYPE HTML> <html> <head> <script src="jquery_1_2_6.js"></script> <script> jQuery(function($){ $('button').click(function(){ $('#ifm2').contents().find('body').html($('#ifm1').contents().find('body').html()); }); }); </script> </head> <body> <iframe id="ifm1" src="iframe01b.html"></iframe> <iframe id="ifm2"></iframe> <button>COPY</button> </body> </html> iframe01b.html <!DOCTYPE HTML> <html> <body> <p>iframeの中です</p> <input value="iframeの中です"/><br/> <textarea>iframeの中です</textarea> </body> </html> ちなみにjQueryベースですが以下に iframe関係の処理をまとめてます。ご参考までに iframe 関連処理まとめ - Cyokodog::Diary http://d.hatena.ne.jp/cyokodog/20090616/iframe01
その他の回答 (4)
- yyr446
- ベストアンサー率65% (870/1330)
結果を表示する<iframe>のsrc属性は初期状態で、空白ページのURLにしておく、urlをGETで受け取り、オープンして中身をそのまま出力するPHP(cgi)を別途作成しておく。 各<iframe>の外に、ボタン等を配置してクリックしたら、結果を表示する<iframe>のsrc属性に作成したphpのurlに表示したいframeのurlをエンコードしてパラメータとして付加した値をセットする。 で、どうでしょうか?
- yyr446
- ベストアンサー率65% (870/1330)
No.2のサンプルにはケアレスミスが多少あります。すみません
- yyr446
- ベストアンサー率65% (870/1330)
IFRAME-Aに表示されるページのHTMLを<div>に表示するなら こうです(IE用) <script type="text/javascript"> <!-- function setpage(){ var target=document.getElementById("a").getAttribute('src') var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ document.getElementById("disp").innerHTML = xmlhttp.responseText; } }); xmlhttp.open('GET', target); xmlhttp.send(null); function setPageData() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("b").innerHTML = xmlhttp.responseText; } } } // --> </script> <body> <iframe id="a" src="hoge.htm" onload="javascript:setpage();"></iframe> <div id="b"></div> </body>
- yyr446
- ベストアンサー率65% (870/1330)
やりたい事がよくわからないのですが、 <iframe>に対応していないブラウザー対応ですか? それにしては、「使用するブラウザはIE6/7/8となります。」 といっているし.... <iframe>に表示しているHTMLの中身をを文字列として取得することはIEでは var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); とかを使えば簡単にできますが、 <srcのlocationをコピーするのではなく>どうやって 別の<iframe>に表示するつもりなのでしょうか?
補足
さっそくのコメントありがとうございます。 質問が分かりにくく申し訳ありません。 実際にはページ内に複数のiframeがあります。 その中から任意に指定されたiframeのコンテンツを、特定(例えば一番上)のiframe内に表示したく考えています。 よろしくお願いいたします。
お礼
ありがとうございます。 やりたいことができそうです。 JQueryって便利ですね。 自分でも調べて色々と使ってみたいと思います。