首页 > 解决方案 > 每个网页都有 DOM 和 body 元素吗?

问题描述

我正在使用 Stencil.js 实现一个前端应用程序。我们打算将 Stencil 应用程序嵌套在 Web 应用程序的每个页面上,它们都使用不同的技术。我们有一些页面是 Angular 应用程序,其他页面是用 React 制作的,等等。

在 Stencil 应用程序中,我想修改后台网页上的“body”元素,以便可以在不同时间禁用滚动条。我可以轻松地调用“document.body”,但我不知道这是否始终可用,具体取决于网页的类型。无论使用什么技术,每个网页是否都包含一个 DOM 以及一个“body”元素?

如果我需要澄清这一点,我说的是在 Web 浏览器中加载的可视网页。

标签: javascript

解决方案


一般来说是的,但也有例外。

document.body是一个 getter,每次在代码中引用它时它都会查找 body 元素。如果您的代码在body创建元素之前执行,或者即使有一个,您将获得null. 您可能还没有准备好的常见情况document.body是元素中有一个同步脚本标记,head或者您的应用程序是设置为在页面加载之前执行的浏览器扩展。


推荐阅读