JS用 或 || 来兼容FireFox!

时间:2021-05-26

Untitled Document

  • 打开
  • 打开
  • 打开
  • [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
    找到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标签之间没有任何形式的空格.

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

    可能你还是没有看明白,没关系,在举个简单的:
    [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章