
由于浏览器安全策略的限制,iframe的src地址必须为同域才可以获取内容。
我做了一个案例,分别创建了一个父页面(parenthtml)以及一个子页面(childrenhtml)。代码如下:
父页面(parenthtml):
<!DOCTYPE html><html>
<head>
<meta charset="UTF-8">
<title>我的父页面</title>
</head>
<body>
<iframe src="childrenhtml" frameborder="0"></iframe>
<script type="text/javascript">
//获取iframe的对象。
var iframe = documentquerySelector('iframe');
//必须使用onload来确保iframe页面内容加载完毕后再获取。
//如果在未渲染完毕就获取,将得到“空”的结果。
iframeonload = function(){
//先通过contentDocument获取iframe的文档对象。
//再通过querySelector来获取body的对象。
//最后使用innerHTML来获取body的HTML内容。并打印。
alert(iframecontentDocumentquerySelector("body")innerHTML);
}
</script>
</body>
</html>
子页面(childrenhtml):
<!DOCTYPE html><html>
<head>
<meta charset="UTF-8">
<title>我的子页面</title>
</head>
<body>
<p>我是子页面P元素的内容</p>
<div id="name">我是子页面ID为name的内容</div>
</body>
</html>
其中在父页面中书写了获取子页面内容的JavaScript代码。
示例中是获取子页面body中的全部内容。结果如下:
如果是同域名的网址,可以通过JS来读取:
var url = windowframes[0]locationhref;如果是跨域的,由于安全原因,你只能获取你原来设置的url:
var url = $('iframe')attr('src');如果iframe里面的地址跳转了,这个是不会跟着变的,也就是说,你是无法获取变化后的地址的。
先找到iframe对象,再通过iframe的contentDocument属性获取SVG整个文档对象
<iframe src="svg/02svg" frameborder="0" width="500" height="300" id="f1"></iframe>var obj=documentgetElementById("f1");var d=objcontentDocument;
以上就是关于如何用js打印 iframe里面的内容全部的内容,包括:如何用js打印 iframe里面的内容、怎么获取 iframe转跳的网址、如何通过JS获取HTML中iframe中的SVG整个文档等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)