源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

firefox下对ajax的onreadystatechange的支持情况分析

  • 时间:2022-03-07 14:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:firefox下对ajax的onreadystatechange的支持情况分析
一、问题:
[url=a.asp]}else if (cartResult == 2){ ......; }else{ window.location.href='/'; } } }
但是这样也不行,原来ff 3改成:xmlHttp.onreadystatechange = xmlHandle();然而加了括号,IE又不行,唉,原来就觉得FF是鸡皮,现在感觉FF纯属一个打着“支持标准”的称号,却是干着浪费程序员时间的垃圾。但手上这个程序又实在重要,没办法,只有再调试看看有没有更简单的办法,如下: 这段代码在IE和FF下可以通用。但由于是同步调用,需要在readyState<4时未取得结果前出现提示,这对于网速慢的客户很友好。然而要在本机获得这种等待反应时的情况,由于本机反应快,会造成看不到给客户提示,因此暂时先不用这个代码 只有加入浏览器类型分析。
[u]复制代码[/u] 代码如下:
function getOs() { var OsObject = ""; if(navigator.userAgent.indexOf("MSIE")>0) { return "MSIE"; //IE浏览器 } if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ return "Firefox"; //Firefox浏览器 } if(isSafari=navigator.userAgent.indexOf("Safari")>0) { return "Safari"; //Safan浏览器 } if(isCamino=navigator.userAgent.indexOf("Camino")>0){ return "Camino"; //Camino浏览器 } if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ return "Gecko"; //Gecko浏览器 } }
然后把AJAX代码改为:
[u]复制代码[/u] 代码如下:
var rndcode = new Date().getTime(); var CartUrl ="a.asp?cache="+rndcode var btype=getOs(); xmlHttp.onreadystatechange = (btype!="Firefox")?xmlHandle():xmlHandle; xmlHttp.open ("GET",CartUrl,false); xmlHttp.send(null); xmlHttp.onreadystatechange = (btype!="Firefox")?xmlHandle():xmlHandle;
例二
[u]复制代码[/u] 代码如下:
//获取游览器的类型,为解决onreadystatechange不兼容的问题 function getOs() { var OsObject = ""; if(navigator.userAgent.indexOf("MSIE")>0) { return "MSIE"; //IE浏览器 } if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ return "Firefox"; //Firefox浏览器 } if(isSafari=navigator.userAgent.indexOf("Safari")>0) { return "Safari"; //Safan浏览器 } if(isCamino=navigator.userAgent.indexOf("Camino")>0){ return "Camino"; //Camino浏览器 } if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ return "Gecko"; //Gecko浏览器 } } var objHttp; function searchCommodityByGroupId(groupId) { objHttp = getHttpRequest(); var tt=new Date(); var url="getCommodityListByGroupId.htm?commodityGroupId="+groupId+"&time="+tt; var btype=getOs(); objHttp.onreadystatechange=(btype=="Firefox")?getCommodity():getCommodity; objHttp.open("GET",url,false); objHttp.send(null); objHttp.onreadystatechange=(btype=="Firefox")?getCommodity():getCommodity; } function getCommodity(){ if(objHttp.readyState==4) { if(objHttp.status==200) { document.getElementById("commodityDiv").innerHTML=objHttp.responseText; } } } function getHttpRequest(){ var httpRequest; if (window.XMLHttpRequest){ httpRequest = new XMLHttpRequest(); if (httpRequest.overrideMimeType){ httpRequest.overrideMimeType('text/xml'); } }else if (window.ActiveXObject){ try{ httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){} } } return httpRequest; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部