代码之家  ›  专栏  ›  技术社区  ›  mbillard

如何使用jquery访问iframe的内容?

  •  100
  • mbillard  · 技术社区  · 14 年前

    如何使用jquery访问iframe的内容?我试过这样做,但没用:

    iFrAME内容: <div id="myContent"></div>

    jQuery: $("#myiframe").find("#myContent")

    我怎样才能进入 myContent ?


    类似 jquery/javascript: accessing contents of an iframe 但被接受的答案不是我想要的。

    3 回复  |  直到 6 年前
        1
  •  182
  •   Cedric    6 年前

    你必须使用 contents() 方法:

    $("#myiframe").contents().find("#myContent")
    

    来源: http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/

        2
  •  18
  •   andres descalzo    14 年前
    <html>
    <head>
    <title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
    <script type="text/javascript">
    
    $(function() {
    
        //here you have the control over the body of the iframe document
        var iBody = $("#iView").contents().find("body");
    
        //here you have the control over any element (#myContent)
        var myContent = iBody.find("#myContent");
    
    });
    
    </script>
    </head>
    <body>
      <iframe src="mifile.html" id="iView" style="width:200px;height:70px;border:dotted 1px red" frameborder="0"></iframe>
    </body>
    </html>
    
        3
  •  14
  •   fireb86    9 年前

    如果iframe的源是外部域,浏览器将隐藏iframe内容(相同的源策略)。 解决方法是将外部内容保存在文件中,例如(在PHP中):

    <?php
        $contents = file_get_contents($external_url);
        $res = file_put_contents($filename, $contents);
    ?>
    

    然后,获取新的文件内容(字符串)并将其解析为HTML,例如(在jquery中):

    $.get(file_url, function(string){
        var html = $.parseHTML(string);
        var contents = $(html).contents();
    },'html');