JQuery Ajax的导致IE6崩溃

这段时间公司开始更换OS,从Windows 2000变成Ubuntu,我们的网站也跟着修改,css就到处找hack,javascript就去找jquery, 测试发现jquery的ajax请求直接造成部分ie6崩溃,只要是IE6,无论是什么操作系统,一个都没有逃掉,如果是只有自己写的Ajax请求还无所谓了,但是那么多的jquery ajax插件不能用,实在是痛苦,开始找是否是IE6的问题,看了Ajax:请使用最新版本的XMLHTTP,了解到IE6在不同的OS可能使用不同的xmlhttprequest,如是乎到windows 2000下找,发现是MSXML2.XMLHTTP.4.0,windows 2003下,发现是MSXML2.XMLHTTP.5.0,接着去找jquery.js中的写法

 

1 xhr:function()
2 {
3        return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
4 }
5  

 

 

 

直接崩溃掉,从上篇文章中了解到,Microsoft.XMLHTTP为IE下最早的一个XMLHTTP版本,看来jquery的开发者也有意的将ie6系列的浏览器抛弃

IE7 已经开始支持XMLHttpRequest.

最后将这段代码改写成如下模样

 1 var oRequest;
 2  if(typeof XMLHttpRequest=="undefined" && window.ActiveXObject)
 3     {
 4         var arrSignatures = ["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
 5         for(var i=0;i<arrSignatures.length;i++)
 6         {
 7             try
 8             {
 9                oRequest = new ActiveXObject(arrSignatures[i]);
10                return oRequest;
11              }
12              catch(oError)
13              {
14              }
15             }
16     }
17  else
18     oRequest=new XMLHttpRequest();
19  return oRequest
20  

 

 压缩,上传.世界一片清静.

jquery1.3.2-join.qi

posted @ 2009-12-22 21:00  燕七  阅读(1682)  评论(0编辑  收藏  举报