【问题标题】:getElementsByTagName("body")[0].innerHTML Removing <head>getElementsByTagName("body")[0].innerHTML 删除 <head>
【发布时间】:2014-05-08 00:56:00
【问题描述】:

我正在运行以下脚本来替换我的 &lt;body&gt; 标记的内容。它有效,但它也删除了我的 &lt;head&gt; 标签的内容。

知道为什么会发生这种情况吗?

if ($(window).width() < 977) {
    document.getElementsByTagName("body")[0].innerHTML="<div style='text-align: center; padding-top: 0px; padding-bottom: 0px; background-color: none;'><iframe id='id-name' name='name' src='http://example.com'></iframe></div>";
}

更新

反对票是怎么回事?我要结束这个问题吗?

当窗口宽度低于某个宽度时,我正在尝试更改 body 标记内的 html,以包含不同的 iframe。

问题是它还删除了我的 &lt;head&gt; 标签的内容

【问题讨论】:

  • 这个问题一点都不清楚。当您将 &lt;body&gt; 元素中的所有 HTML 内容替换为新内容时,您期望发生什么? edit ok 修复了损坏的 Markdown。那么原始的 HTML 是什么样的呢?你怎么知道&lt;head&gt; 被覆盖了?
  • 您到底想完成什么? innerHTML 就是这样做的……它将该标记的内容设置为 "" 中的任何内容
  • 感谢您的帮助 :(
  • 当我运行jsfiddle.net/akZ6u 时,我可以清楚地看到(通过检查元素)head 的内容没有改变。因此,要么你的观察是错误的,要么即使它是正确的,document.getElementsByTagName("body")[0].innerHTML 很可能对你所看到的不负责任,问题一定出在其他地方。由于您没有提供任何上下文信息,因此我们确实无法为您提供帮助。
  • 好的,谢谢。这里肯定有其他原因导致问题。对这篇文章进行故障排除的场景太大了。这是一个带有其他脚本和扩展的 Magento 安装。我认为这可能与我的脚本有关,因为它仅在我运行此脚本时出现。

标签: javascript jquery html


【解决方案1】:

我不确定您所说的“它有效”是什么意思,但这是我从代码中看到的: 您正在替换,而不是附加,body 标签的内容。如果要保留 body 标签中的任何其他内容,您可能需要先提取该部分,然后加入要添加的新内容。

【讨论】:

  • “它有效”意味着它开始做我希望它完成的事情并且它替换了 标签的内容。问题是它还删除了我的 标签的内容?
  • 我看不出这个答案是如何获得投票的,它属于 cmets
  • 我明白,但这可能是对原始问题的回答。而不是这样,我的代表不到 50。
猜你喜欢
  • 2019-11-25
  • 1970-01-01
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
相关资源
最近更新 更多