zoukankan      html  css  js  c++  java
  • IE firefox 兼容性整理

    1、尽量用jquery操作。

    2、jquery取值时要用准确的方法,attr(), val(), text(), html(). 

    例如: <span value="a">test</span> 取value属性值,ie下  $("span").val()可以,ff下就有问题。标准写法$("span").attr("value");

    3、firefox 下最好不要直接用class筛选器,尤其是大量dom的页面,最好有多个限制,例如:$("#id .classname").val()

    4、获取事件方法:

    IE:window.event    FireFox:arguments.callee.caller.arguments[0]

    var e = window.event || arguments.callee.caller.arguments[0];
    var srcElement = event.srcElement ? event.srcElement : event.target

    如果是方法里又调用方法,最里层的方法要根据event事件处理的话。用上边方法就不行了。

    用如下方法:

    function getEvent() //同时兼容ie和ff的写法 
    {  
        if(document.all)  return window.event;    
        func=getEvent.caller;        
        while(func!=null){  
            var arg0=func.arguments[0]; 
            if(arg0) 
            { 
                if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
                {  
                return arg0; 
                } 
            } 
            func=func.caller; 
        } 
        return null; 
    } 

    5、阻止冒泡事件:

    function stopEvent() {
        //var e = window.event || arguments.callee.caller.arguments[0];
        var e = getEvent();
        //如果提供了事件对象,则这是一个非IE浏览器
        if (e && e.preventDefault) {
            //阻止默认浏览器动作(W3C) 
            e.preventDefault();
        }
        else {
            //IE中阻止函数器默认动作的方式
            window.event.returnValue = false;
        }
    //    if (e && e.stopPropagation) {
    //        // this code is for Mozilla and Opera
    //        e.stopPropagation();
    //    } else if (window.event) {
    //        // this code is for IE 
    //        window.event.cancelBubble = true;
    //    }
    }

    6、监听事件

    IE

    document.body.attachEvent('onclick', functionname);

    Firefox

    document.body.addEventListener('click', functionname,false);

     =============================================================

    chrome 兼容性

    1、var event=arguments.callee.caller.arguments[0]||window.event;//消除浏览器差异

  • 相关阅读:
    bzoj2733 永无乡 平衡树按秩合并
    bzoj2752 高速公路 线段树
    bzoj1052 覆盖问题 二分答案 dfs
    bzoj1584 打扫卫生 dp
    bzoj1854 游戏 二分图
    bzoj3316 JC loves Mkk 二分答案 单调队列
    bzoj3643 Phi的反函数 数学 搜索
    有一种恐怖,叫大爆搜
    BZOJ3566 概率充电器 概率dp
    一些奇奇怪怪的过题思路
  • 原文地址:https://www.cnblogs.com/fo0ol/p/5583959.html
Copyright © 2011-2022 走看看