javascript-node和document(2)

接着上篇,这篇主要介绍document对象,document在浏览器中表示整个HTML页面,document对象是window对象的一个方法,因此可以省略window对象。
下面介绍document对象的属性和方法:(学习javascript思想:一切皆对象)

1、nodeType、nodeName、nodeValue和parentNode

以上的4个属性分别是:9、#document、null、null

2、documentElment和body

这个指向页面的html节点,和document.childNodes[0] 或 document.firstChild 一样
而后者则指向body。

3、title

可以通过document.title来取得标题,同样也可以通过document.title = “xxx”来设置标题

4、url、domain 和 referrer

第一个URL和location.href相同

第二个domain大部分是用来和iframe内跨子域的调用方法或全局变量和利用它来AJAX跨子域操作,它可以突破javascript的同源策略。

第三个大部分是用在来源统计上的,用来捕获客户端是通过哪个网站跳转过来的,可以方便的抓取客户端的来源,当然可能是伪造的。

5、getElementById(id)

大名鼎鼎的方法,不多解释,只提三句,第一这是获取节点最快的方法,第二注意大小写,第三请保持获取的ID在页面上的唯一性,包括其他元素的name属性也不要与ID相同!

6、getElementsByTagName(node_name)

在没有联想的editPlus里我一直少打一个S,真的郁闷,这个方法返回一个数组,jquery很多选择器都依靠这个方法,所以在使用jquery选择器时还是推荐使用$(“#id”)这样来做,最快!另外返回的这个数组有一个常用的方法:

namedItem(name)或[name];用来筛选name是参数值的第一个节点。

如果node_name参数为“*”,则表示查找页面上的所有元素。

6、getElementsByName(name)

同上,只不过这里查抄name。

7、anchors、applets、forms、images、links、embeds

分别表示:

1
2
3
4
5
6
anchors   文档中带有name特性的a元素
applets 文档中所有applet元素
forms 文档中所有forms元素
images 文档中所有images元素
links 文档中所有带有href的a元素
embeds 文档中所有带有embed元素

8、write(string)和writeln(string)

输出参数内的字符串,如果string是HTML元素会解析。唯一需要注意的是输出,需要将其拆开。

9、implementation

浏览器的DOM支持检测,他有很多属性,可以自己去百度一下,包括支持CSS什么版本,event事件是什么模型等等。

他支持一个方法hasFeature(“css2”, “2.0”);用来检测浏览器是否支持css2.0.

11、cookie

可以获得或者添加cookie操作

11、createElement(Tag_name)

创建一个节点,需要appendChild()和insertBefore() 这2个方法配合使用。

12、createEvent(eventType)

创建一个新的Event对象,只能接受event对象模块名

13、createDocumentFragment()

创建一个新的document fragment文档节点,这个节点具有普通节点的属性和方法,可以利用这个文档节点来作为仓库,存放不会立即放入HTML页面的节点,等处理完了再一起放入HTML页面,这样可以避免每次放入反复渲染,减少开销。例如:

1
2
3
var  f = document.createDocumentFragment();
f.appendChild(new_node); //反复多次
document.body.appendChild(f); //最后将这个仓库放入HTML页面中,只进行一次渲染

14、scrollIntoView(bool)

使当前element.scroolIntoView()可见,可以用其他方法代替

15、一些不常用的属性和方法:

1
2
3
4
5
6
7
8
9
10
11
12
document.compatMode:用来判断当前浏览器采用的渲染方式。
BackCompat:标准兼容模式关闭。
CSS1Compat:标准兼容模式开启。

document.contentType: 返回当前页的类型如:text/html
document.characterSet: 得到当前页的chatset:只能读取
document.lastModified: 最后修改时间
document.elementFromPoint(x, y) 根据坐标获得DOM元素
document.importNode(externalNode, deep) 引入其他文档模型的节点,第二个参数为是否深度引入
open()和close() 打开和关闭网页输出流,在页面加载器无需使用
createTextNode(data) 创建文本节点
最后强大的execCommand: 只是FF支持的不好,IE支持,可以百度一下看下相关的技术文章,看了大跌眼镜,原来还能这样!