如何用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中的全部内容。结果如下:

iframe取得html内容的方法是利用jquery解析dom树实现的。

例如有如下iframe:

<iframe id="ifrmReportViewer" name="ifrmReportViewer" frameborder="0" width="980"

<div id="EndLetterSequenceNoToShow" runat="server"> 11441551 </div> Or

<form id="form1" runat="server">

<div style="clear: both; width: 998px; margin: 0 auto;" id="divInnerForm">

从这里获取所需要的内容

</div>

</form>

</iframe>

获取div内容的方法:

var iContentBody = $("#ifrmReportViewer")contents()find("body");

var endLetterSequenceNo = iContentBodyfind("#EndLetterSequenceNoToShow")text();

或者是

var divInnerFormText = iContentBodyfind("#EndLetterSequenceNoToShow")text();

documentgetElementById('iframe')contentWindowdocumentbodyinnerHTML

<iframe src=">

直接是不行的。

1、用c#往webbrowser里面外层网页注入一段javascript,这段javascript的作用是向iframe注入代码。

2、向iframe注入的代码的作用是获取document的源代码;

3、把获取到的源代码返回到外层网页里面的一个对象里。

4、用c#从外层网页取这个源代码。

Jquery可以使用“$("iframe body")html()”语句获取iframe里面body的html内容。

jQuery选择器允许对HTML元素组或单个元素进行 *** 作,所有选择器都以美元符号开头:$()。元素选择器基于元素名选取元素,例如:“$("p")”可以获取页面中所有<p>元素对应的jquery对象。

jQuery对象的html()函数用于获取该对象对应html标签内包含的所有html代码。

扩展资料:

jQuery选择器的分类:

1、元素选择器

jQuery元素选择器基于元素名选取元素,例如:“$("p")”用于选取出所有p标签的jquery对象。

2、id选择器

jQuery #id选择器通过HTML元素的id属性选取指定的元素。页面中元素的id应该是唯一的,所以您要在页面中选取唯一的元素需要通过#id选择器,例如:“$("#test")”于选取出id为“test”的jquery对象。

3、class 选择器

jQuery类选择器可以通过指定的class查找元素,例如:$("test")用于选取出所有包含“test”类的jquery对象。

参考资料来源:百度百科-jQuery

以上就是关于如何用js打印 iframe里面的内容全部的内容,包括:如何用js打印 iframe里面的内容、iframe 怎么取得html内容、js如何远程获取iframe标签内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存