javascript - 每个网页都有 DOM 和 body 元素吗?
问题描述
我正在使用 Stencil.js 实现一个前端应用程序。我们打算将 Stencil 应用程序嵌套在 Web 应用程序的每个页面上,它们都使用不同的技术。我们有一些页面是 Angular 应用程序,其他页面是用 React 制作的,等等。
在 Stencil 应用程序中,我想修改后台网页上的“body”元素,以便可以在不同时间禁用滚动条。我可以轻松地调用“document.body”,但我不知道这是否始终可用,具体取决于网页的类型。无论使用什么技术,每个网页是否都包含一个 DOM 以及一个“body”元素?
如果我需要澄清这一点,我说的是在 Web 浏览器中加载的可视网页。
解决方案
一般来说是的,但也有例外。
document.body
是一个 getter,每次在代码中引用它时它都会查找 body 元素。如果您的代码在body
创建元素之前执行,或者即使有一个,您将获得null
. 您可能还没有准备好的常见情况document.body
是元素中有一个同步脚本标记,head
或者您的应用程序是设置为在页面加载之前执行的浏览器扩展。
推荐阅读
- javascript - 尝试动态更改导航栏中的“活动”类 - Node.js/Express/Handlebars
- java - 在 Java 中使用 WEKA
- javascript - 路由导航方法未重定向到目标组件
- node.js - expressjs 是否能够同时为多个用户提供文件?
- angular - angular4 Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays
- javascript - 在不提供输入的情况下调用迭代器函数会产生奇怪的行为?
- c# - 在 Post 请求中发送 DateTime
- excel - 如何拥有 2 个非常相似的 Excel 插件,一个用于生产,一个用于开发?
- python - 为什么它返回 PY_VAR0 而不是数字
- javascript - 为什么只有在物理检查无线电时才执行 eventListeners?