Document类型是JS中表示文档的类型。提供了两种方法获取HTML中的元素,分别是 document.documentElement
和document.childNodes
的唯一玄素。document的body属性指向body,也比较常用。
上一节提到的操作node类型节点的方法,并不能用在document对象上,因为document对象是只读的,并且只存在一个Element类型的子节点,就是
document的文档信息属性有 title、URL、domain、referrer
这个属性可以读写,表示浏览器窗口的标题栏,修改后标题也会直接改变在浏览器标题处。但是,修改属性并不会改变<title>元素
返回档期那页面的完整URL,只读
这个属性返回了URL的域名,可以进行有限制的设置:
- 只能改同域名
- 放松修改后就不能在收紧了。例如 p2p.wrox.com 变成 wrox.com后就不能变回去了
表示页面的来源地址,无则返回空字符串
接收id作为参数,如果有多个承载此id的元素,只返回查找到的第一个。
接收标签名作为参数,返回一个nodeList或HTMLCollection的集合,表示所有定位到此标签的元素集合。
HTMLCollection 和 nodeList特性很像,都是实时,都可以用中括号获取,都有length。前者多一个方法脚 namedItem() 可以通过元素绑定的name获取某一项引用。
返回具有指定name的元素集合
返回具有指定类名的元素集合
document.implementtation属性是一个对象,定义了一个方法叫做hasFeature()
,接收两个传参:特性名称和版本,书中有提供了查询的枚举和方法。不常用,了解即可。P411底部
document支持古老的方法,向文档中写入内容
这两个方法的区别是,后者会在写入内容后追加一个换行符,在document上调用这两个方法,会在页面加载期间向页面动态添加内容
不仅可以添加字符串文本,可以添加 标签包裹起来的元素,会被文档解析成正常标签使用,经常用于加载脚本,但是要注意用法,示例:
<script type="text/javascript">
document.write("<script type="text/javascript" src=\"file.js"\ > + <\/script>")
</script>
注意结尾部分多了一个反斜杠,</script>。如果不加这个反斜杠,会被上面的script 起始标签认为是结束标签,引发包裹错误
如果在window.onload之后,页面加载之后再去调用这两个方法,输出的内容会重写整个页面。
分别用于打开和关闭网页输出流