15

我是第一次这样做。我iframe在我的页面上创建了一个,我想要来自iframethrough的文本jquery。这是我的代码:

<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>

文本.php:

text to change

我在所有浏览器中尝试了很多,但仍然无法正常工作。谁能帮我获取此内容?

4

4 回答 4

2

The contentWindow works in both FF and chrome

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

Would give you a DOM element body

You can also try something like

 window.frames['myIframe'].document.body    

That might do the trick for you also

You might have problems with your browsers built in security. If you run this on a local machine. There is a way to disable browsers security.

于 2013-05-16T13:58:51.433 回答
2

使用.contents()访问 iFrame 的 DOM。

$('#myIframe').contents()

更新:

在 OP 中:

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

应该说:

$("#result").html(iframeContent.find('body').html());
于 2013-05-16T14:02:29.257 回答
1

使用 jquery 会容易一些:

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

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

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

于 2013-05-16T14:45:11.603 回答
1
var content=$("iframe").contents().find('body').html();

alert(content);
于 2014-11-19T05:01:32.877 回答