有没有办法在没有iFrame的情况下加载完整的HTML代码?

时间:2018-03-22 08:48:29

标签: html css iframe

我正在编写预览功能,让用户预览他们上传的HTML文件并进行一些小编辑。 HTML文件不包含Javascript,也不包含外部CSS。所有CSS都在样式标记或内联中。另一方面,图像将永远是外部的,因为我们没有提供存储图像的空间。

iFrame不是一个好的解决方案,因为:

  1. 预览是在实际保存内容之前,因此我无法为iFrame提供加载页面的网址。
  2. 很难触摸iFrame中的元素。由于用户将在显示纯HTML的另一个文本框中进行小更新,我将需要经常更新内部元素。
  3. 但是,如果我只是将内容插入<div>重复的<html>,则<head><body>标记会使页面崩溃。

    那么,有没有一种方法可以在没有iFrame的情况下预览HTML?

1 个答案:

答案 0 :(得分:0)

如果您不希望主应用程序影响预览的样式,则需要使用iframe。你看到iframe的内容窗口了吗? https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/contentWindow。这可能是您正在寻找的答案。所以基本上你在这里尝试访问你的iframe的DOM。试一试!

preview = getYourIframeDom();
code = getYourHtmlCodeHere();
preview.contentWindow.document.open("text/html","replace");
preview.contentWindow.document.write(code);
preview.contentWindow.document.close();