カテゴリー
未分類

jQueryでiFrameを扱う

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のほうが楽。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です