兼容IE, Chrome的ajax function
var gAjax = (function () {
/*
paramObj:{
url: request url,
method: GET or POST,
encode: character,
param: post param,
isAsync: boolean,
returnType: xml/text,
onAjaxComplete: function
}
*/
var _send_ajax = function (paramObj) {
var url, method, encode, httpRequest, param, isAsync, parser, returnType;
var onAjaxComplete;
url = paramObj.url;
method = paramObj.method.toUpperCase();
encode = paramObj.encode;
if (method == 'GET')
param = null;
else if (method == 'POST')
param = paramObj.param;
isAsync = paramObj.isAsync;
returnType = paramObj.returnType || "xml";
onAjaxComplete = paramObj.onAjaxComplete;
if (window.ActiveXObject) {//IE
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {//FireFox,Chrome,Safari
httpRequest = new XMLHttpRequest();
}
httpRequest.onreadystatechange = function () {
) {
) {
if (returnType.toUpperCase() == "XML") {
if (window.ActiveXObject) {//IE
parser = new ActiveXObject("Microsoft.XMLDOM");
parser.async = false;
parser.load(httpRequest.responseXML);
} else if (document.implementation.createDocument) {
try {//FireFox
parser = document.implementation.createDocument("", "", null);
parser.async = false;
parser = (new DOMParser()).parseFromString(httpRequest.responseText, "text/xml");
} catch (e) {//Chrome,Safari
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET", httpRequest.responseText, false);
xmlhttp.send(null);
parser = xmlhttp.responseXML.documentElement;
}
}
} else {
parser = httpRequest.responseText;
}
onAjaxComplete.apply(_send_ajax, [parser]);
} else {
alert("远程服务调用失败!");
}
}
}
httpRequest.open(method, url, isAsync);
if (typeof encode != 'undefined')
if (method == 'GET')
httpRequest.setRequestHeader("Content-Type", "text/html;charset=" + encode);
else if (method == 'POST')
httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" + encode);
httpRequest.send(param);
}
return {
sendAjax: _send_ajax
}
})();
用法:
<script>
function loadAjax() {
gAjax.sendAjax({
url:"Server.aspx",
method:'POST',
encode:'GBK',
param:" + "&time=" + new Date(),
isAsync: true,
returnType: 'TEXT',
onAjaxComplete:function(data){
alert(data);
}
});
}
</script>
兼容IE, Chrome的ajax function的更多相关文章
- Jquery判断离开页面时,通过Ajax更新数据(兼容IE,Chrome,FF浏览器)
现在很多项目都有客户离开网页时,处理一些业务的需求.所以焦点就聚集在了如何获取页面离开事件. 以下是本人在一个项目中需要记录页面浏览时长的处理办法,测试兼容IE,Chrome,FF浏览器 代码如下: ...
- 设为首页 和 收藏本站js代码 兼容IE,chrome,ff
设为首页 和 收藏本站js代码 兼容IE,chrome,ff //设为首页 function SetHome(obj,url){ try{ obj.style.behavior='url(#defau ...
- 让Chrome支持Ajax/$http方式读取本地文件
在开发中经常写些小demo调试一下插件什么的 数据源又经常手动构造分离为一个单独的文件.用ajax或$http去访问时总是拒绝访问.这个时候可以给Chrome的快捷图标加启动参数,让浏览器允许js访问 ...
- 兼容ie的jquery ajax文件上传
Ajax文件上传插件很多,但兼容性各不一样,许多是对ie不兼容的,另外项目中是要求将网页内容嵌入到桌面端应用的,这样就不允许带flash的上传插件了,如:jquery uploadify...悲剧 对 ...
- 监听HTML input输入框值的即时变化onpropertychange、oninput兼容IE,Chrome,FF,Opera等
转自:http://blog.csdn.net/itchiang/article/details/7769337 要达到的效果 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增 ...
- JS复制内容到剪贴板(兼容FF/Chrome/Safari所有浏览器)
现在浏览器种类也越来越多,诸如 IE.Firefox.Chrome.Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了. 在FLASH 9 时代,有一个通杀所有浏 ...
- JS实现复制到剪贴板(兼容FF/Chrome/Safari所有浏览器)
现在浏览器种类也越来越多,诸如 IE.Firefox.Chrome.Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了. 在FLASH 9 时代,有一个通杀所有浏 ...
- 本地调试 Chrome支持Ajax跨域
Ajax本身是不支持跨域的,跨域问题其实很简单,通过浏览器的相应设置可以完成两个不同的服务器或两个不同服务下的项目互相访问.希望大家给予评价及投票. 方法/步骤 1 首先谷歌快捷方式上右击,在下拉列表 ...
- js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)
第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type=&qu ...
随机推荐
- 一些常用的linux命令
查看本机ip地址 ifconfig ln -s phpmyadmin 添加链接 /var/www/ 与html 同级 打开本机电脑硬盘: cd /media/用户名 文件夹的新建命令: sudo ...
- iOS 归档
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...
- iOS 图片实现马赛克效果
/** *实现马赛克效果 */ // 导出CIImage图片 CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImageimageNamed: ...
- Java基础之处理事件——applet中语义事件的处理(Lottery 1)
控制台程序. 语义事件与程序GUI上的组件操作有关.例如,如果选择菜单项或单击按钮,就会生成语义事件. 对组件执行操作时,例如选择菜单项或单击按钮,就会生成ActionEvent事件.在选择或取消选择 ...
- Java基础之一组有用的类——为标记定义自己的模式(ScanString)
控制台程序. Scanner类提供了一种方式,用来指定如何识别标记.这需要使用next()方法的两个重载版本.其中的一个版本接受Pattern类型的参数.另一个版本接受String类型的参数,用来指定 ...
- PostgreSQL中initdb做了什么
在使用数据库前,是启动数据库,启动数据库前是initdb(初始化数据库):一起来看一下initdb做了什么吧. 初始化数据库的操作为: ./initdb -D /usr/local/pgsql/dat ...
- 转:Tomcat配置
一.修改Tomcat端口号步骤: 1.找到Tomcat目录下的conf文件夹 2.进入conf文件夹里面找到server.xml文件 3.打开server.xml文件 4.在server.xml文件里 ...
- list和set的区别
list和set的区别 相同点:list,set都是继承自collection接口 不同点: a.list-->元素有放入顺序,元素可重复 set-->元素无放入顺序,元素不可重复 b. ...
- struts文件上传(多文件)
第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
- VS2012发布网站详细步骤
1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件: 输入你自 ...