找回密码
 注册
搜索
热搜: 回贴

[JS]用空格或 || 来兼容FireFox

2009-12-16 23:33| 发布者: admin| 查看: 45| 评论: 0|原作者: 段誉

看例子:
运行代码框

情缘.教程_网 [http://Www.XiuGoo.Com]



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下.
    因为在IE下,XMLDom没有preserveWhiteSpace这个属性,即:把空白也当作一个节点,而IE则默认为false,即把空白不看成一个节点.
    这里说到了XMLDom,似乎和上面所说的不相关,但是在FireFox下 previousSibling就是空白,除非两个HTML标签之间没有任何形式的空格.

    打开
    两个之间有换行(属于空格的一种),所以在FireFox下,取下面一个的前一个节点的话,就必须用:
    o.previousSibling.previousSibling.href
    可能你还是没有看明白,没关系,再举个简单的:
    运行代码框


    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
    好,点道为止,就讲这些!

    最新评论

    QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

    GMT+8, 2024-9-30 05:24 , Processed in 0.128393 second(s), 12 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.5

    © 2001-2023 Discuz! Team.

    返回顶部