运行代码框
untitled document打开打开打开
[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]
找到 document.body.onclick = function(evt),
在ie下,这个evt是不会有的,但是在firefox下(opera下好像也是)会默认传这个参数.在ie下,这个参数是 null ,想兼容,就这样写.
继续向下:
evt = evt || window.event;
在ie下,evt 就会指向:window.event,在firefox下,就会指向那个默认参数.
因为在ie下 evt || window.event 相当于: null || window.event,结果还是window.event
而在firefox下,就相当于 evt || null ,结果就是evt
向下看:
o.previoussibling.href || o.previoussibling.previoussibling.href
前面一个表达式用于ie下,后面一个用于firefox下.
firefox下,没有preservewhitespace这个属性,即:把空白也当作一个节点,而ie则默认为false,即把空白不看成一个节点.
这里说到了xmldom,似乎和上面所说的不相关,但是在firefox下 previoussibling就是空白,除非两个html标签之间没有任何形式的空格.
打开
两个之间有换行(属于空格的一种),所以在firefox下,取下面一个的前一个节点的话,就必须用:
o.previoussibling.previoussibling.href
可能你还是没有看明白,没关系,再举个简单的:
运行代码框
[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]