如何用js打印 iframe里面的内容

如何用js打印 iframe里面的内容,第1张

由于浏览器安全策略的限制,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整个文档等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9715998.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存