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