[JS]用 或 || 来兼容FireFox

作者:xling 时间:2013-06-26 14:50:47 

看例子:

运行代码框

[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 全部选择 提示:你可先修改部分代码,再运行]

好,点道为止,就讲这些!

标签:
0
投稿

猜你喜欢

  • 设计从"心"开始

    2011-05-21 08:37:00
  • SQL Server字符串切割函数

    2012-08-21 10:18:43
  • 类型为search的input及相关属性

    2009-02-11 12:49:00
  • 模拟兼容性的 inline-block 属性

    2008-04-08 12:37:00
  • 基于FlashPaper实现JSP在线阅读代码示例

    2023-06-14 21:02:31
  • Oracle9iPL/SQL编程的经验小结

    2010-07-23 12:49:00
  • CTF中的PHP特性函数解析之中篇

    2023-06-11 12:56:20
  • 基于Python爬取51cto博客页面信息过程解析

    2023-06-11 16:27:37
  • 如何使用Script Encoder?

    2010-06-05 12:42:00
  • 图片预加载效果的实现

    2008-06-16 12:08:00
  • sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享

    2012-01-05 18:57:19
  • SQL Server 安全检查列表全攻略

    2008-01-29 13:31:00
  • ASP生成静态模版技术(带参数的标签)

    2009-03-03 12:29:00
  • 二级联动下拉菜单javascript源码

    2010-03-16 12:32:00
  • SQL语句操作主从关系表

    2011-06-19 13:19:05
  • 站长如何活用"nofollow"标签

    2008-05-13 12:40:00
  • sql自动增长标识导致导入数据问题的解决方法

    2023-07-04 04:39:22
  • 介绍27款经典的CSS框架

    2011-03-04 16:24:00
  • 在数据库中自动生成编号的实现方法分享

    2011-11-03 16:55:24
  • z-blog文章摘要图文混排

    2009-02-28 13:49:00
  • asp之家 网络编程 m.aspxhome.com