Javascript:引用<html>dom节点
Javascript: Is it safe to refer to the <html> DOM-node?
在一个只有css选择器可用于检索元素的环境中工作,我想在覆盖整个浏览器窗口的DOM中获得元素。使用开发人员工具,我发现<body>
在我的情况下有一些余量,这使得它不适合我的需求。
我进一步发现<html>
元素覆盖了浏览器窗口的整个区域。当它是关于文档属性时,使用dom节点是否安全?例如,获取宽度/高度?
是否有机会<html>
对应于javascript中所指的document
?
编辑:关于设置的边注:
我正在与实习生一起包装WD版本,并希望协调鼠标移动相对于文档。我的目标是使用像selectByCssSelector
这样的方法来协调鼠标移动与选定元素的关系。到目前为止,使用<html>
节点似乎是可行的。我以前从未接触过<html>
节点,也从未见过其他人这样做,这就是为什么我想确信使用该节点并不坏。
文档对象是一个DOM HTML对象,所以,是的,它确实对应于<html>
标记,但不是以您认为的方式。它不像<body>
或<span>
标签。它告诉浏览器下面的代码或信息是HTML。就像<?php
告诉服务器有PHP代码,<script type="text/javascript">
告诉浏览器有Javascript代码一样。欲了解更多信息,请查看此页面。
如果你不想获取正文的宽度和高度,你可以使用window.innerWidth
和window.innerHeight
。这应该得到整个窗口的高度和宽度(不包括任何滚动条或工具箱)。
你也可以使用documentElement来获取整个文档的宽度和高度。
var height = document.documentElement.clientHeight;
var width = document.documentElement.clientWidth;
这可能是你正在寻找的最终答案,但你也可以通过使用jQuery中的document
来找到整个文档的宽度和高度。
var width = $(document).width();
var height = $(document).height();
html
表示文档中的所有标记和内容,但它不对应于document
对象。相反,它显示为其属性document.documentElement
(尽管它也可以以许多其他方式引用,例如document.children[0]
)。
正如你所注意到的,body
元素可能有一个边距,默认情况下它的所有边距都是8px。因此,如果您让html
元素的尺寸默认为这个,那么您应该将html
元素作为与浏览器窗口中的整个视口相对应的元素。您可以获得document.documentElement.clientWidth
和document.documentElement.clientHeight
的尺寸。
然而,由于历史原因,根据CSS定义,html
元素的背景总是覆盖整个画布,即使该元素已被设置为较小的尺寸。如果你同时设置背景和边框,就能看到这个效果;背景可能会延伸到边界之外。此外,CSS规范还规定,如果没有为html
设置背景,则使用body
的背景。
- 将DOM节点值与字符串Javascript进行比较
- 如何判断何时将dom节点添加到文档中
- 当DOM节点在DOM中移动时,如何阻止Firefox触发mouseleave
- 如何检查DOM节点是否继承自构造函数
- 如何存储DOM节点
- 保留未修改的dom节点副本问题
- 无法在 IE 7/8 中使用 parentNode 抓取 DOM 节点
- 窗口对象属性返回一个dom节点
- js初学者-如何在比网页中的DOM节点低一个级别上立即解析所有子节点
- querySelectorAll polyfill用于所有DOM节点
- 如何判断文本输入字段dom节点是否*没有*带有javascript的选择
- 主干移除视图和DOM节点
- Metor:将html保存为字符串,然后将其转换为DOM节点
- 将属性从 DOM 节点复制到 dijit 小部件中
- 我可以将 HTML 字符串分配给 HTML DOM 节点的内部 HTML 属性吗?
- 在不删除/附加 DOM 节点的情况下对 DOM 节点进行重新排序
- 检查 DOM 节点是否位于 Iframe 内
- JavaScript Memory Leak - DOM 节点和后代上的垃圾回收
- DOM 节点清理如何在 d3 中工作
- 动态 dom 节点与 jquery