ajax实现 兼容ie,firefox等
来源:互联网 发布:体质指数计算法公式, 编辑:程序博客网 时间:2024/04/28 00:13
转一个AJAX实现.
HttpXML.js:
function httpRequest(method,data,URL)
{
var Http = null;
try {
Http = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
Http = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc) {
Http = null;
}
}
if (!Http && window.XMLHttpRequest) {
Http = new XMLHttpRequest();
}
if (Http == null) {
alert("Your browser cannot handle this script,you can try IE or Firefox.");
}
Http.open(method,URL,false);
Http.send(data);
var response = Http.responseText;
delete(Http);
return response;
}
function XMLDatastore()
{
//类变量
var xmlDoc;
var errorInfo;
var listOfNodes;
//类方法
this.init = init;
this.createNew = createNew;
this.loadFile = loadFile;
this.loadXML = loadXML;
this.rowCount = rowCount;
this.colCount = colCount;
this.getItem = getItem;
this.getItemByName = getItemByName;
this.insertRow = insertRow;
this.addColumn = addColumn;
this.setItem = setItem;
this.setItemByName = setItemByName;
this.getXML = getXML;
this.getErrorInfo = getErrorInfo;
this.destroy = destroy;
function init()
{
// code for IE
if (window.ActiveXObject)
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.async=false;
}
else
{
alert('Your browser cannot handle this script,you can try IE or Firefox.');
}
}
function createNew()
{
root = xmlDoc.createElement("rows");
xmlDoc.appendChild(root);
listOfNodes = xmlDoc.documentElement.childNodes;
}
function loadFile(fileName)
{
var result = false;
xmlDoc.load(fileName);
root = xmlDoc.getElementsByTagName(xmlDoc.childNodes[0].tagName)[0];
if (root.childNodes[1] == null) {
listOfNodes = xmlDoc.documentElement.childNodes;
}
else {
listOfNodes = root.getElementsByTagName(root.childNodes[1].tagName);
}
result = true;
return result;
}
function loadXML(xml)
{
var result = false;
if (navigator.appName.indexOf("Internet Explorer") == -1) {
var parser=new DOMParser();
xmlDoc=parser.parseFromString(xml,"text/xml");
if (xmlDoc.documentElement) {
result = true;
listOfNodes = xmlDoc.documentElement.childNodes;
}
}
else {
xmlDoc.loadXML(xml);
if(xmlDoc.parseError !=0)
errorInfo = xmlDoc.parseError.reason;
else
{
result = true;
listOfNodes = xmlDoc.documentElement.childNodes;
}
}
return result;
}
function rowCount()
{
return listOfNodes.length;
}
function colCount()
{
var cols = 0;
if(rowCount()>0)
cols = listOfNodes.item(0).childNodes.length;
return cols;
}
function getItem(rowNo,colNo)
{
var node = listOfNodes.item(rowNo);
node = node.childNodes.item(colNo);
return node.text;
}
function getItemByName(rowNo,colName)
{
var node = listOfNodes.item(rowNo);
var rowNodes = node.childNodes;
var i;
for(i=0;i<rowNodes.length;i++)
{
node = rowNodes.item(i);
if(node.tagName == colName) {
if (node.text != undefined) {
return node.text;
}
else {
return node.textContent;
}
}
}
}
function insertRow(rowNo)
{
var rowElement = xmlDoc.createElement("row");
if(rowNo == -1)
{
xmlDoc.documentElement.appendChild(rowElement);
rowNo = rowCount();
}
else
{
xmlDoc.documentElement.insertBefore(rowElement,listOfNodes.item(rowNo));
}
return rowNo;
}
function addColumn(rowNo,colName,value)
{
var colElement = xmlDoc.createElement(colName);
var node = listOfNodes.item(rowNo);
node.appendChild(colElement);
node.lastChild.text = value;
}
function setItem(rowNo,colNo,value)
{
var node = listOfNodes.item(rowNo);
node = node.childNodes.item(colNo);
return node.text = value;
}
function setItemByName(rowNo,colName,value)
{
var listOfCols = xmlDoc.documentElement.getElementsByTagName(colName);
var node = listOfCols.item(rowNo);
return node.text = value;
}
function getXML()
{
/*if (window.XSLTProcessor) {
// transformToDocument方式
var xsltProcessor = new XSLTProcessor();
//xmlDoc.load("../XmlFile/Common.xsl");
xsltProcessor.importStylesheet("../XmlFile/Common.xsl");
var result = xsltProcessor.transformToDocument(xmlDoc);
var xmls = new XMLSerializer();
return xmls.serializeToString(result);
}
else {
return xmlDoc.transformNode(xmlDoc);
}*/
var xmlstr = "<?xml version=/"1.0/" encoding=/"utf-8/"?>";
xmlstr += "<rows>";
for (i=0; i<listOfNodes.length; i++) {
xmlstr += "<row>";
rowNodes = listOfNodes.item(i).childNodes;
for(j=0;j<rowNodes.length;j++)
{
node = rowNodes.item(j);
xmlstr += "<"+node.tagName+">";
if (node.text != undefined) {
xmlstr += node.text;
}
else {
xmlstr += node.textContent;
}
xmlstr += "</"+node.tagName+">";
}
xmlstr += "</row>";
}
xmlstr += "</rows>";
return xmlstr;
}
function getErrorInfo()
{
return errorInfo;
}
function destroy()
{
delete(xmlDoc);
}
}
使用例子1(返回简单的一个字符串):
var url = "/include/ajax/review_vote.aspx?reviewid="+reviewid+"&votetype="+votetype+"&addtype="+addtype+"&time="+(new Date()).getTime();
var response = httpRequest("get",null,url);
使用例子2(返回一个数据集):程序返回一个XML格式的数据集
var ds = new XMLDatastore();
ds.init();
var url = "/include/ajax/common_ajax.aspx?action=getuserlocation";
var response = httpRequest("get",null,url);
if(ds.loadXML(response) == true)
{
if (ds.rowCount() == 0) {
searchFriend.innerHTML = "";
}
else {
var IsPrimary = "";
var Address = "";
for(i=0;i<ds.rowCount();i++)
{
IsPrimary = ds.getItemByName(i,"IsPrimary");
Address = ds.getItemByName(i,"Address");
}
}
}
ds.destroy();
还可以这样传参数:
var ds = new XMLDatastore();
ds.init();
ds.createNew();
ds.insertRow(-1);
ds.addColumn(0,"SortBy",SortBy.options[SortBy.selectedIndex].value);
ds.addColumn(0,"PageSize",PageSize);
ds.addColumn(0,"ListReviews",document.getElementById("MyReviewID").value);
var url = "/include/ajax/GetMyPageReview.aspx";
var response = httpRequest("post",ds.getXML(),url);
- ajax实现 兼容ie,firefox等
- ajax实现 兼容ie,firefox等
- 解决Google/Firefox等浏览器兼容IE
- pasteHTML兼容ie,firefox,chrome等浏览器
- 兼容IE、新版Chrome、Firefox,实现本地图片等比例缩放预览
- 兼容IE、新版Chrome、Firefox,实现本地图片等比例缩放预览
- 兼容IE、新版Chrome、Firefox,实现本地图片等比例缩放预览
- onbeforeunload事件中调用Ajax实现用户注销操作(兼容IE、Firefox、Chrome)
- onbeforeunload事件中调用Ajax实现用户注销操作(兼容IE、Firefox、Chrome)
- js 实现键盘记录 兼容FireFox和IE
- js 实现键盘记录 兼容FireFox和IE
- js 键盘记录实现(兼容FireFox和IE)
- js 键盘记录实现(兼容FireFox和IE)
- Js 键盘记录实现(兼容FireFox和IE)
- fireFox日期选择控件(兼容IE、Apple等)
- 兼容IE、FireFox等跨浏览器播放背景音乐 html
- 兼容IE、FireFox、Chrome等浏览器的xml处理函数
- 鼠标滚轮事件(兼容IE、FireFox、Chrome等浏览器)
- Linux网络协议栈分析——从设备驱动到链路层
- windows 下VLC播放器应用之二------LIBVLC API解析(二)
- 关于Symbian IAP
- FP大串烧:SQL,LINQ,F#以及STL(2)
- DP(斜率优化)
- ajax实现 兼容ie,firefox等
- 浅谈JAVA ThreadPoolExecutor
- win7瘦身
- 责任链模式的应用实例
- wo
- 网狐棋牌游戏服务端架构设计原理
- 感动每一天
- 深入剖析Spring Web源码(十九) - 整理的文档和日志的索引(第一版)
- SugarSync 优秀的中文版免费网络同步工具