我是第一次这样做。我在页面上创建了iframe
,我想要iframe
到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>
text.php:
text to change
我在所有浏览器中都尝试了很多,但仍然没有用。 有人可以帮助我获取这些内容吗?
答案 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允许的任何其他函数。