【问题标题】:proper place to insert iframe in html在 html 中插入 iframe 的正确位置
【发布时间】:2015-04-16 05:08:46
【问题描述】:

我有一个动态创建的 iframe 元素。如果我不确定 html 中是否有 body 标签,我应该在哪里附加这个 iframe?我正在考虑将其附加为 div 之类的 html 标签的子级,我也必须动态创建它。但我需要在某处附加 div。同样,我不确定在哪里附加 div。

【问题讨论】:

  • 为什么它们不是 HTML 中的body 标签。
  • 我必须将 iframe 合并到第三方代码中。在极少数情况下,我发现 body 标签不存在。
  • 当没有body标签时,浏览器会创建一个body元素。但是从嵌套元素内部修改主体会在 IE7 中引发操作中止错误。请看这篇文章-jspatterns.com/the-ridiculous-case-of-adding-a-script-element
  • 检查下面的代码。

标签: javascript html dom iframe


【解决方案1】:

您的问题似乎是在询问如何容纳非标准 HTML 文档。如果您绝对必须并且不能坚持要求文档提供者使他们的文档符合标准,我会检查 body 标记,如果存在,请附加到该标记。如果不可用,我将测试 html 元素并附加到该元素。除此之外,我拒绝在这方面为对方服务。

if (document.getElementsByTagName('body')) {
    ...
} else if {document.getElementsByTagName('html')) {
    ...
} else {
    console.log("We're sorry, but your document is poorly constructed 
      and we won't be serving you today.");
}

【讨论】:

    【解决方案2】:

    我猜你必须这样做。

    检查body是否存在,如果不存在则创建它。

    var dom = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null);
    if(!document.body)
    {
        var body = dom.createElement("body");
        body.innerHTML = "<iframe></iframe>";
        dom.firstChild.appendChild(body);
    }
    else
    {
    document.body.innerHTML = "<iframe></iframe>";
    }
    

    【讨论】:

    • 如果正文由于糟糕的 html 而没有出现怎么办?创建一个会使它变得更糟糕?
    • 如果他们没有身体,那么他们没有什么可以让它变得贫穷。它只会在&lt;html&gt; 中创建&lt;body&gt;...&lt;/body&gt;。它不会让它变穷。
    • 正文标签 - 如果有没有正文标签的 div,它们将被推送到正文标签下
    • 为什么他们会是没有body标签的div,谁做的?
    • 一直在发生——我怀疑这就是问题所在。为什么 OP 需要向一个完全空白的页面添加框架?
    【解决方案3】:

    您必须将它插入到正文标签中。所以如果没有body标签,只需在head元素后插入body标签,在body标签中插入iframe标签即可。

    【讨论】:

      猜你喜欢
      • 2018-04-14
      • 2021-03-24
      • 1970-01-01
      • 2020-01-16
      • 2018-04-07
      • 2019-12-09
      • 2013-05-19
      • 2011-02-16
      • 2011-06-25
      相关资源
      最近更新 更多