Javascript 技巧整理

 

  1. IE与FireFox都支持的onbeforeunload事件
    <script language="javascript">
        var blnCheckUnload = true;
        window.onbeforeunload = function(e) { 
            var e = window.event || e;
            if(blnCheckUnload) {
                e.returnValue="Are You Sure?";
            }
        }
    </script>
     
  2. 判断是不是IE最简单的方法 

    var isIE = document.all && window.external;
    var ie = !+"\v1";
    var ie = !-[1,];//对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它
    var notIE = -[1,];//目前最短
    if("\v"=="v") {
      document.write("这是IE浏览器");
    }
    else {
      document.write("这不是IE浏览器");
    }
    


    从jquery中摘除的代码:

    var userAgent = navigator.userAgent.toLowerCase();
    // Figure out what browser is being used
    var browser = {
    	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
    	safari: /webkit/.test( userAgent ),
    	opera: /opera/.test( userAgent ),
    	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
    	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
    }


  3. 如果需要重写dom对象的原型,并且增加方法的话,如果界面引入了prototype可能会导致重写失败,因为prototype也会重写原型。
    例如解析xml文件的方法如果要在FF和IE中通用的话需要覆盖XMLDocument.prototype.selectNodes
    Element.prototype.selectNodes
    XMLDocument.prototype.selectSingleNode
    Element.prototype.selectSingleNode
    如果界面引入prototype会导致重写失败。
  4. 关于向服务器端发送请求
    如果通过get方式向服务端发送请求,要注意参数的长度,根据微软的权威解释,IE的url最大长度是2083个字节,可以用于GET传递数据的长度是2048个字节。
    解决的方法是通过post方式替代原来的get方式。通过动态创建隐藏iframe,并在iframe中创建form,提交form到隐藏表单变相实现Ajax,提交form到新的界面便向实现window.open功能。
    如果参数中包含特殊字符需要将其用方法encodeURIComponent进行编码。
  5. Chrome浏览器的onload事件的处理
    如果使用的代码是:
    <script for=window event="onload">
    			
    </script>
     则需要注意:此方法在chrome中是没有作用的。而且如果在有frameset的界面中使用<body οnlοad="">一样是没有作用的,建议使用添加事件监听的方式添加事件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值