从iframe获取数据

时间:2013-05-16 13:51:59

标签: javascript jquery html html5

我是第一次这样做。我在页面上创建了iframe,我想要iframejquery的文字。 这是我的代码:

<html>
  <head><script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

    <script type="text/javascript">
    function copyIframeContent(iframe){  
        var iframeContent = $(iframe).contents(); //alert(iframeContent);
        //$("#result").text("Hello World");
        $("#result").html(iframeContent.find('body').html);alert(iframeContent.find('body').html());
    }
    </script>
  </head>
  <body>
    <iframe id="myIframe" onload="copyIframeContent(this);" name="myIframe" src="text.php"></iframe><br />
    Result:<br />
    <textarea id='result'></textarea>
    <input type="button" value="click" id="btn" onclick="aa()">
    <script type="text/javascript">
         function aa(){  alert("Fdf");
            alert(document.getElementById('myIframe').contentWindow.document.body.innerHTML);
    }
    </script>
  </body>
</html>

text.php:

text to change

我在所有浏览器中都尝试了很多,但仍然没有用。 有人可以帮助我获取这些内容吗?

4 个答案:

答案 0 :(得分:2)

使用.contents()转到iFrame的DOM。

$('#myIframe').contents()

<强>更新

在OP中:

$("#result").html(iframeContent.find('body').html);

应该说:

$("#result").html(iframeContent.find('body').html());

答案 1 :(得分:1)

var content=$("iframe").contents().find('body').html();

alert(content);

答案 2 :(得分:0)

contentWindow同时适用于FF和chrome

document.getElementById('myFrame').contentWindow.document.body    

会给你一个DOM元素主体

您也可以尝试类似

的内容
 window.frames['myIframe'].document.body    

这也可能为你做到了伎俩

您的浏览器可能存在安全性问题。如果您在本地计算机上运行它。有一种方法可以禁用浏览器安全性。

答案 3 :(得分:0)

使用jquery会更容易一些:

$('Your Selector', frames['myIframe'].document)

以上示例将从 myIframe 中获取任何内容。但iframe必须来自与父文档相同的域。如果不是来自同一个域,则会发生安全违规(您无法将外部网站的内容添加到您的网页并更改该内容。)

如果没有安全违规,您可以对选择执行任何操作。例如,您可以使用jquery append()方法在iFrame中插入新的html,您可以使用html()方法替换html或jquery / pure javascript允许的任何其他函数。