繁体   English   中英

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.innerWidthwindow.innerHeight 这应该获得整个窗口的高度和宽度(不包括任何滚动条或工具箱)。

您还可以使用documentElement获取整个文档的宽度和高度。

var height = document.documentElement.clientHeight;
var width = document.documentElement.clientWidth;

这可能是你正在寻找最后的答案,但你也可以通过使用发现整个文档的宽度和高度document中的jQuery。

var width = $(document).width();
var height = $(document).height();

html表示文档中的所有标记和内容,但与document对象不对应。 相反,它作为其属性document.documentElement (尽管也可以通过许多其他方式引用它,例如document.children[0] )。

如您所注意, body元素可能有一个空白,默认情况下,所有侧面都有8px的空白。 因此,假设您让html元素的尺寸默认为html ,而不是html元素,则应将其称为浏览器窗口中的整个视口。 您可以将尺寸获取为document.documentElement.clientWidthdocument.documentElement.clientHeight

但是,由于历史原因,通过CSS定义,即使html元素背景设置为较小尺寸,它的背景也会始终覆盖整个画布。 如果同时设置背景和边框,则可以看到此内容。 背景可能会超出边界。 此外,CSS规范还指定如果未为html设置背景,则使用body的背景。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM