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

Javascript
js select 标签选定项的值获取代码
js GridView 实现自动计算操作代码
Discuz 公告效果(自动换行,无间隙滚动)
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
JS 常用校验函数
HTML代码中标签的全部属性 中文注释说明
input 高级限制级用法
js onpropertychange输入框 事件获取属性
Javascript 生成无限下拉列表实现代码
javascript 极速 隐藏/显示万行表格列只需 60毫秒
用JavaScript实现单继承和多继承的简单方法
javascript 闭包函数做显隐内容
js 页面模块自由拖动实例
js Flash插入函数免激活代码
setTimeout 不断吐食CPU的问题分析
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
js 浏览器版本及版本号判断函数2009年
Javascript 原型和继承(Prototypes and Inheritance)
HTML 自动伸缩的表格Table js实现
两个INPUT同步输入的方法小结 兼容IE和firefox

Javascript 中的 用 或 || 来兼容FireFox


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 311 ::
收藏到网摘: 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 全部选择 提示:你可先修改部分代码,再按运行]