【问题标题】:Why is document.body not working on my subpages?为什么 document.body 不能在我的子页面上工作?
【发布时间】:2021-08-16 16:53:38
【问题描述】:

背景 我创建了一个简单的解决方法来获得在 iPad 和 iPhone 设备上工作的固定背景,即在 body 标记之后创建一个空 div,位置:fixed 而不是这些设备不支持的 background-attachment:fixed。我尝试过的 body 元素的所有变体,比如伪 ::before 在这些设备上都不起作用。一个空的 div 解决了这个问题。

问题 我下面的脚本在我的主页(“主页”/“开始”)上完美运行。但我也有其他页面,如“联系”等,在脚本所在的位置共享相同的“全局”头部标签,但它不起作用(div 根本不显示)。我希望这会在每个正文元素之后添加一个 div,无论加载了哪个页面......另外,我正在使用window.onload,因为我无法在正文标记之后手动添加脚本。每个子页面正文标签都有自己的 id,但为什么这很重要? 我错过了什么?

window.onload = function FixedBg() {
  var body = document.body;
  var bgDiv = document.createElement('div');
  bgDiv.className = "fixedBackground";
  body.insertAdjacentElement('afterbegin', bgDiv);
}

我无权手动将 div 直接添加到 DOM 中,否则这显然是一种方法,因此 JavaScript...

【问题讨论】:

  • 这里的问题是什么exxactlx?控制台有错误吗?是 div 没有显示出来吗?
  • insertAdjacentElement 不接受 html 字符串而不是 dom 节点吗?
  • 足够真实-我想它必须在内部将dom节点视为字符串。也许尝试将注入绑定到 DOMContentLoaded 事件 - 看看是否有帮助
  • 好吧,你知道有些怪癖没有人能理解。为什么你这么反对简单地使用更可靠的选项?使用 DOMContentLoaded 不会对您造成伤害,而且它没有更多的编码工作,只需多输入几个字母来输入 window.addEventListener。

标签: javascript html


【解决方案1】:

正如@ProfessorAbronsius 和@TheFool 在上面的cmets 中所建议的那样,使用DOMContentLoaded 和一个事件监听器就成功了!谢谢

【讨论】:

    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多