jQueryでiFrameを扱うのは意外と難しい。
コードで説明すると
<html>
<head>
<script src=”http://code.jquery.com/jquery-1.6.min.js”></script>
<script>
$(function(){//————————————–方法1
$ifr = $(“<iframe id=’ifr’></iframe>”);
//この段階ではIframeの内容は存在しない。$(“body”).append($ifr);
//ここでIframeがロードされる。document.getElementById(“ifr”)
.contentWindow
.document.write(“<html><head></head><body></body></html>”);
//これを書かないとGoogle Chrome以外は動作しない。$(“#ifr”).contents().find(“body”).append(“hoge”);
//Ifrの内容に”hoge”を追加。//————————————–方法2
$ifrObj = $(“<iframe></iframe>”).appendTo(document.body);
$ifrObj.contents().ready(function(){
$ifrObj.contents().find(“body”).append(“<div>hoge</div>”);
});});
</script>
</head>
<body>
</body>
</html>
jQuery自体はクロスブラウザ対策用に使えるかもしれないが、IfrのロードはChromeだと自動的にHTMLタグ、HEAD、Bodyが追加されているが、それ以外のブラウザだとReadyに時間がかかるか初期状態が空白のため検索ができない。
一応対処はこれぐらいかな。
たぶん方法2のほうが楽。