日期:2014-05-16  浏览次数:20331 次

javascript-例子

?

/**

?* 工具对象

?*/

comet.utils = {

? ? ? ? /**

? ? ? ? ?* 获取随机数参数,形如:&randomNum=18787890001

? ? ? ? ?*/

? ? ? ? _getRandomNumParam : function(){

? ? ? ? ? ? ? ? var date = new Date();

? ? ? ? ? ? ? ? var retStr = "&randomNum=" + date.getTime();

? ? ? ? ? ? ? ? return retStr;

? ? ? ? },

? ? ? ? /**

? ? ? ? ?* 获取项目根路径,返回值形如:http://localhost:8080/sys/

? ? ? ? ?*/

? ? ? ? _getRootPath : function (){

? ? ? ? ? ? ? ? //获取当前网址,如:http://localhost:8080/sys/testPushlet.jsp

? ? ? ? ? ? ? ? var curHref = location.href;

? ? ? ? ? ? ? ? //获取主机地址之后的目录,如:/sys/testPushlet.jsp

? ? ? ? ? ? ? ? var pathName = location.pathname;

? ? ? ? ? ? ? ? //获取当前主机地址,如:http://localhost:8080

? ? ? ? ? ? ? ? var host = curHref.substring(0,curHref.indexOf(pathName));

? ? ? ? ? ? ? ? //获取当前项目名称,如:/sys

? ? ? ? ? ? ? ? var projectName = pathName.substring(0,pathName.indexOf("/",1));

? ? ? ? ? ? ? ? return(host + projectName + ?"/");

? ? ? ? },

? ? ? ? /**

? ? ? ? ?* 创建兼容firefox、ie5以上版本的xmlHttpRequest对象

? ? ? ? ?*/

? ? ? ? _getXMLHttpRequest : function(){?

? ? ? ? ? ? ? ? var http_request;

? ? ? ? ? ? ? ? if(comet.browserType=="firefox"){ // firefox

? ? ? ? ? ? ? ? ? ? ? ? http_request=new XMLHttpRequest();?

? ? ? ? ? ? ? ? }else if(comet.browserType=="ie"){ // ie系列

? ? ? ? ? ? ? ? ? ? ? ? try{?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http_request=new ActiveXObject("Msxml2.XMLHTTP");?

? ? ? ? ? ? ? ? ? ? ? ? }catch(e){ // IE5.x

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http_request=new ActiveXObject("Microsoft.XMLHTTP");?

? ? ? ? ? ? ? ? ? ? ? ? }?

? ? ? ? ? ? ? ? }?

? ? ? ? ? ? ? ? return http_request;

? ? ? ? },

? ? ? ? /**

? ? ? ? ?* 封装ajax请求方法(类似jquery中$.ajax)

? ? ? ? ?*/

? ? ? ? _ajax : function(args){

? ? ? ? ? ? ? ? var url = null;

? ? ? ? ? ? ? ? var async = true;

? ? ? ? ? ? ? ? var type = "GET";

? ? ? ? ? ? ? ? var postData = null;

? ? ? ? ? ? ? ? var successFun = null;

? ? ? ? ? ? ? ? var errorFun = null;

? ? ? ? ? ? ? ? var timeout = null;

? ? ? ? ? ? ? ? var timer = null;

? ? ? ? ? ? ? ? if(args[url]){

? ? ? ? ? ? ? ? ? ? ? ? //避免IE下使用缓存,不刷新问题

? ? ? ? ? ? ? ? ? ? ? ? url = args[url] + comet.utils._getRandomNumParam(); ?

? ? ? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? ? ? ? ? alert("url could not be null");

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if(args[async] == false){async = false;}

? ? ? ? ? ? ? ? if(args[type] == "POST"){type = "POST";}

? ? ? ? ? ? ? ? if(args[postData]){postData = args[postData];}

? ? ? ? ? ? ? ? if(args[success]){successFun = args[success];}

? ? ? ? ? ? ? ? if(args[error]){error = args[error];}

? ? ? ? ? ? ? ? if(args[timeout]){timeout = args[timeout];}

? ? ? ? ? ? ? ? var xmlhttp = comet.utils._getXMLHttpRequest();

? ? ? ? ? ? ? ? if (!xmlhttp || xmlhttp == null) {

? ? ? ? ? ? ? ? ? ? ? ? alert('No browser XMLHttpRequest (AJAX) support');

? ? ? ? ? ? ? ? ? ? ? ? return;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? xmlhttp.onreadystatechange = function() {

? ? ? ? ? ? ? ? ? ? ? ? if (xmlhttp.readyState == 4) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (xmlhttp.status == 200) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(successFun != null){successFun(xmlhttp);}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(errorFun != null){errorFun(xmlhttp);}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? alert("XMLHttpResponse return error ,the status is" ? ? ? ?+ xmlhttp.status);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(timer){

? ? ? ? ? ? ? ? ? ?