-1

我正在做一些需要我在嵌入式 iframe 中构建 html 的工作。有点像jsbin。

然而,我对我的第一个尖峰感到难过。

当我将它放在 iframe 中时,为什么我的 html 没有被呈现?

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <iframe>
    <html>
      <head><meta charset=utf-8 /></head>
      <body>
        <h1>Big Header</h1>
      </body>
    </html>
  </iframe>
</body>
</html>

这是我的jsbin。

此外,当我尝试使用 d3 在 iframe 中绘制一些 svg 时,它们看起来很奇怪,而且没有缩放。在打开开发工具并将 svg 文本编辑为 html 后,我发现即使在任何地方添加一个无意义的空间也会让它重新绘制和正确渲染。因此,如果有人可以告诉我任何我可以阅读的资源,那么加分很明显,iframe 不像我想象的那样工作。

4

2 回答 2

1

iframe 需要指向要加载的页面。您不要在 iframe 标记之间放置 html。如果您在 iframe 标记之间放置任何内容 - 它是您希望在客户端使用的浏览器不支持该标记的情况下显示的文本。您应该在自己的本地 html 页面上方制作 html,并将上面的 iframe src 属性指向该网页。

于 2013-01-10T15:49:56.650 回答
0

经过一天的研究:

就像迈克说的那样,iframe 中的 html 是针对浏览器不支持 iframe 并且不会显示的情况。但是,完全可以在 iframe 中动态构建文档,而无需服务器端查询。为此,您必须使用 javascript 来构建文档。您可以获取它的引用并像这样编写 html:

var  iframe = document.getElementsByTagName('iframe')[0];
    ,doc = iframe.contentDocument || iframe.contentWindow.document
    ; 
doc.open();
doc.write('<p>Some html</p>');
do.close();

请注意,正如 Remy在这里提到的,文档必须在编写之前打开并在之后关闭。

于 2013-01-11T03:13:50.460 回答