做了一个web方式的GPS车载定位系统,用到了自己写了个Ajax处理类,客户端界面Ext 2.0,后台C#写的一个服务器(后台服务器已经做好了不用管)。系统开发前期,本来打算将IE、FireFox做兼容,但是在FireFox做测试时,出现了问题。客户端向服务器发送指令成功,但是不能接受响应消息(IE没有问题)。
这段时间,做为一个Web方式的系统,我个人觉得必须兼容2种以上的主流浏览器。所以Firefox的兼容是必须的。
这个Ajax类是兼容IE,FireFox:
var Ajax=function(){
this.http_request=false;
return{
init:function(){
this.createAjaxObj();
},
createAjaxObj:function(){
//创建XMLHttpRequest实例
if (window.XMLHttpRequest)
{ //Mozilla 浏览器
this.http_request = new XMLHttpRequest();
if (this.http_request.overrideMimeType)
{//设置MiME类别
this.http_request.overrideMimeType("text/xml");
}
}else if (window.ActiveXObject)
{ // IE浏览器
try
{
this.http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
if (!this.http_request) { // 异常,创建对象实例失败
//"不能创建XMLHttpRequest对象实例"
window.alert("不能创建XMLHttpRequest对象实例..");
return false;
}
},
sendRequest:function(method,url,content){
// 确定发送请求的方式和URL以及是否异步执行下段代码
if (method.toLowerCase() == "get")
{
if(navigator.userAgent.indexOf("MSIE")<=0){
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}
this.http_request.open(method, url, false);
this.http_request.send(null);
}
else
{
if (method.toLowerCase() == "post")
{
this.http_request.open(method, url, false);
this.http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.http_request.send(content);
}
else
{
//http请求类别参数错误
window.alert("http请求类别参数错误..");
return false;
}
}
//开始发起浏览请求
// 请求已完成
if (this.http_request.readyState == 4)
{
// 信息已经成功返回,开始处理信息
if (this.http_request.status == 200)
{
//返回的是文本格式信息
return this.http_request.responseText;
//返回的XML格式文档就用alert(http_request.responseXML);
}
else
{
//页面不正常
//"您所请求的页面有异常"
alert("您所请求的页面有异常");
}
}
},
processResponse:function(){
},
addParamsGET:function(sURL,key,value)
{
sURL+=(sURL.indexOf("?")==-1?"?":"&");
sURL+=(key+"="+value);
return sURL;
},
addParamsPOST:function(key,value){
var params="&";
params+=(key+"="+value);
return params;
},
getTime:function(){
var DateTime=new Date();
return DateTime.getFullYear()+"-"+(DateTime.getMonth()+1)+"-"+DateTime.getDate()+" "+DateTime.getHours()+":"+DateTime.getMinutes()+":"+DateTime.getSeconds();
}
};
}
前段时间不兼容的原因,是因为没有设置Firefox的数据访问权限.(跨域)
解决方法:
打开FireFox-->about:config-->signed.applets.codebase_principal_support设置为true;
在xmlHttp.open("GET",url,false)方法之前加以下代码:
//如果不是IE浏览器就执行
if(navigator.userAgent.indexOf("MSIE")<=0){
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}
分享到:
相关推荐
JS日期选择器 兼容IE Firefox Opera等主流浏览器
经测试,用此方法创建XMLHttpRequest对象,在运用AJAX的时候,可以的兼容IE6,IE7,IE8,Opera,Safari,Google Chrome,fireFox。主流的应该就这些吧?theWorld,遨游等浏览器都是以IE为核心的,所以肯定也没问题。 另外...
对firefox浏览器结构做个整体的分析,对研究浏览器的人有所帮助。
IE6、IE7、Firefox之间的兼容写法IE6、IE7、Firefox之间的兼容写法
vue自定义浏览器滚动条(已兼容ie)
firefox浏览器52.3 arm版本
Windows+VB.Net开发FireFox浏览器扩展(Extension)并实现sendNativeMessage消息示例。 需要在注册表[HKEY_CURRENT_USER\Software\Mozilla\NativeMessagingHosts]下增加一个demo项,默认值为Demo.json的完整路径。...
Firefox浏览器不兼容的JS脚本,大概列出了我们经常用到的的js脚本在Firefox和IE中的区别
超好用的js操作Excel实现数据导入导出JS包。只需引入JS包即可完成功能开发。压缩包中有Demo,参照编写即可。
此外,此更新还将使用于 Firefox 的此版本的 .NET Framework Assistant 与将来的 Firefox 浏览器版本兼容。此更新还将使用于 Firefox 的此版本的 .NET Framework Assistant 与将来的 Firefox 浏览器版本兼容。为了...
经过三天的苦战,查询无数的国外网站终于实现了对IE和FireFox浏览器的URl地址实时监控。利用API和DDE分别对IE和FireFox进行了浏览器地址获取,完整的源码程序,与大家分享学习。后期将完善,实现对IE,FireFox,360,...
JavaScript画线,画图兼容FireFox,IE等浏览器
火狐Firefox浏览器安装Selenium_IDE的步骤
CSS Hack兼容大全,令网页能正常显示在IE5,IE5.5,IE6,IE7,Firefox,Opera,Safari等浏览器上
CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点。
程序稍微变动就支持 默认IE 360浏览器 腾讯TT 傲游 Avant Browser 世界之窗 GB绿色浏览器 MY IE 极速浏览器 ...另外还支持Firefox火狐浏览器URL的获取。 如果您还需要支持其它浏览器,请联系加我的QQ:25158172
firefox浏览器插件firefox浏览器插件firefox浏览器插件firefox浏览器插件firefox浏览器插件firefox浏览器插件firefox浏览器插件
页面放大缩小代码,兼容所有浏览器,代码简单,易学易用。
adguard_firefox浏览器插件 20230618
Firefox, IE5, IE5.5, IE6, IE7, IE8多种浏览器兼容的问题,解决以上浏览器存在的兼容问题