dポイントプレゼントキャンペーン実施中!

ページ内に二つのIFRAMEがあります。
IFRAME-A
IFRAME-B
IFRAME-Aに表示されるページのHTMLを、IFRAM-Bにコピーする事は可能でしょうか?
srcのlocationをコピーするのではなく、HTMLを文字列としてコピーして、IFRAME-Bにも同じ内容を表示したく考えています。

使用するブラウザはIE6/7/8となります。
よろしくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

ありがとうございます。
やりたいことができそうです。
JQueryって便利ですね。
自分でも調べて色々と使ってみたいと思います。

お礼日時:2009/09/09 16:22

結果を表示する<iframe>のsrc属性は初期状態で、空白ページのURLにしておく、urlをGETで受け取り、オープンして中身をそのまま出力するPHP(cgi)を別途作成しておく。


各<iframe>の外に、ボタン等を配置してクリックしたら、結果を表示する<iframe>のsrc属性に作成したphpのurlに表示したいframeのurlをエンコードしてパラメータとして付加した値をセットする。
で、どうでしょうか?
    • good
    • 0

No.2のサンプルにはケアレスミスが多少あります。

すみません
    • good
    • 0

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>
    • good
    • 0

やりたい事がよくわからないのですが、


<iframe>に対応していないブラウザー対応ですか?
それにしては、「使用するブラウザはIE6/7/8となります。」
といっているし....
<iframe>に表示しているHTMLの中身をを文字列として取得することはIEでは
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
とかを使えば簡単にできますが、
<srcのlocationをコピーするのではなく>どうやって
別の<iframe>に表示するつもりなのでしょうか?

この回答への補足

さっそくのコメントありがとうございます。
質問が分かりにくく申し訳ありません。
実際にはページ内に複数のiframeがあります。
その中から任意に指定されたiframeのコンテンツを、特定(例えば一番上)のiframe内に表示したく考えています。

よろしくお願いいたします。

補足日時:2009/09/01 21:05
    • good
    • 0

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