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;//消除浏览器差异

  • 相关阅读:
    js与asp.net后台交互
    Asp.net封装js的类
    RegisterClientScriptBlock 与 RegisterStartupScript 的区别
    Page.ClientScript.RegisterStartupScript()
    错误与修复:ASP.NET无法检测IE10,导致_doPostBack未定义JavaScript错误,恒处于FF5卷动条位置
    JS数组的操作
    拉里·埃里森和历史上最牛的演讲【转】
    SSIS 学习(9):包部署常见问题汇总【转】
    SSIS 学习(8):事务【转】
    SSIS 学习(7):包配置(下)【转】
  • 原文地址:https://www.cnblogs.com/fo0ol/p/5583959.html
Copyright © 2011-2022 走看看