用js修改title时,发现的问题 - hooker1的日志 - 网易博客
来源:百度文库 编辑:神马文学网 时间:2024/04/20 06:32:36
title在html中属于特殊的节点元素.因为它可以使用doucment.getElementsByTagName("title")[0]来获
取它的标题,但却无法用doucment.getElementsByTagName("title")[0]用更改它的值.
但是,总有解决的方法.在javascript中,只允许document.title来修改标题
如下:
在
之间的节点元素用document.getElementsByTagName()来获取或修改是没有问题的.至于在
之外的.那就不太清楚了.就好像这个title一样,它自有它自己的一套方法.其实,如果不是document.body这一个东西已经过时了,我也会想到使用document.title这个东西,但
是,document.body已经过时,我还以为 document.title也过时了.
原来两个都没有过时,只是我误解了而已.以前遇到过document.body解决不了的问题,用
document.documentElement解决了就以为现在的标准不支持document.body了.其实一直都是支持的.只是
我上次是使用document.body.clientWidth来获取网页的高.这个当然是不成功的.只能用
document.documentElement.clientWidth来获取......就是因为这个,我误解了,以为body都要用
documentElement来代替.其实我错了.documentElement代表的是中间的所有东西.
结论:该用document.body的还是要用document.body.不该用的时候就不要用.document.body和document.title都是符合当前javascript标准的.只是document.title的用法比较特殊!!!
js会使用document.title来代替网页的title的原因是,title,head,body等标签是缺省的唯一标签,所以
document.title和document.body可以直接找到结果.
而title是一个结构的标签,也就是说title内,只能加入nodetext.而不能再加别的元素.于是它的使用又具有
特殊性.为了不让代码出错.于是js中规定document.title这个对象只有一个属性(也可以说是没有属性)
document.title本身就是document对象的一个属性.而不是它的一个子对象.于用document.title=""来更改
title