0

我正在处理一个显示数据库字段内容的页面。内容为 HTML 格式,包含整个网页

<html>
  <title>Some title</title>
  <style type="text/css">
     /* CSS content here */
  </style>
  <body>
    <!-- body content here -->
  </body>
</html>

我需要在另一个网页中显示所有这些,所以我认为使用 iframe 可以让我从父页面否定任何 css。但是,我无法弄清楚如何覆盖 iframe 文档的内容。

到目前为止我所做的是检索数据,然后使用以下

$("#iframe_constainer")
  .find('iframe:first').contents().find('html:first').html(myHTML);

我的网页包含一个名为 iframe_container 的 div,其中包含一个 iframe。

<div id="iframe_container"><iframe/></div>

这工作正常,但内容myHTML被包裹在html标签内。所以效果是这样的

<html>
  <html>
    <title>Some title</title>
    <style type="text/css">
       /* CSS content here */
    </style>
    <body>
      <!-- body content here -->
    </body>
  </html>
</html>

我知道这是因为我在 iframe 中找到了 html 标记并更改了 HTML。有没有办法使用 jQuery 覆盖整个文档?

4

2 回答 2

2

打开文档并随后关闭将解决附加内容的问题

var iframe = document.getElementById('iframeID');
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(htmlData);
iframe.contentWindow.document.close();
于 2018-06-21T00:40:11.973 回答
0

你实际上并不需要 jQuery,只需使用document.write将内容写入 iframe 以完全替换 iframe 的文档。

例如(在普通的 JS 中)

document.getElementById("myIframeId").contentWindow.document.write(myHTML);
于 2013-09-05T18:16:28.947 回答