当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 用 或 || 来兼容FireFox

Javascript
[原创]javascript 定时广告显示(两个时间段)
jquery ui dialog里调用datepicker的问题
ext 代码生成器
javascript 局部页面打印实现代码
Javascript 继承实现例子
Javascript 继承机制的实现
Javascript 继承机制实例
Javascript 作用域使用说明
Javascript Math对象
Javascript Global对象
什么是JavaScript
img标签中onerror用法
使用JQuery和s3captche实现一个水果名字的验证
JavaScript写的一个DIV 弹出网页对话框
IE8 下的Js错误HTML Parsing Error...
jQuery ui 1.7更新小结
javascript 多级checkbox选择效果
google地图的路线实现代码
Javascript 访问样式表实现代码
JS 控制CSS样式表

Javascript 中的 用 或 || 来兼容FireFox


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 171 ::
收藏到网摘: n/a

看例子:

运行代码框

[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标签之间没有任何形式的空格.

<a href="http://www.blueidea.com/articleimg/bbsimg/smile.gif"/></a>
<a href="图片地址">打开</a>
两个<a>之间有换行(属于空格的一种),所以在FireFox下,取下面一个<a>的前一个节点的话,就必须用:
o.previousSibling.previousSibling.href

可能你还是没有看明白,没关系,再举个简单的:

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]