- /**
- * Id: edit_base_src.js 2008-08-28 17:11
- *
- *
- */
- var base={
- Version:"1.0",
- CreateDate:'2008-08-28',
- ReleaseDate:'',
- init:function(){
- //判断浏览器
- var nu=navigator.userAgent;
- this.isOpera=window.opera && opera.buildNumber;
- this.isWebKit = /WebKit/.test(ua);
- this.isOldWebKit = t.isWebKit && !window.getSelection().getRangeAt;
- this.isIE = !t.isWebKit && !t.isOpera && (/MSIE/gi).test(ua) && (/Explorer/gi).test(navigator.appName);
- this.isIE6 = t.isIE && /MSIE [56]/.test(ua);
- this.isGecko = !t.isWebKit && /Gecko/.test(ua);
- this.isGecko3 = t.isGecko && /(Firefox|Minefield)//[3-9]/.test(ua);
- this.isMac = ua.indexOf('Mac') != -1;
- },
- is:function(o,style){//判断类型,o为对象,style为类型如string,object
- var n=typeof(o);//typeof取得对象类型,但数组和null取到的都是object对象typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined
- if(!t)
- return n!='undefined';
- if(t=='array' && (o instanceof Array)) //instanceof同样也是判断对象类型,如果o是array类型,则返因结果为true
- return true;
- return n==t;
- },
- isFunction:function(fn){
- return !!fn && typeof fn != "string" && !fn.nodeName &&
- fn.constructor != Array && /function/i.test( fn + "" );
- },
- each:function(obj,fn,args){//动态创建对象,obj为对象,fn为对象方法,args:参数
- var n,l,val;
- if(!obj)
- return 0;
- args =args|| obj;
- if(typeof(obj.length)!='undefined'){
- for(n=0,l=obj.length;n<l;n++){
- if(fn.call(args,obj[n],n,obj)==false)
- return 0;
- }
- }else{
- //Hashtables
- for(n in obj){
- if(obj.hasOwnProperty(n)){
- if(fn.call(args,obj[n],n,obj)==false)
- return 0;
- }
- }
- }
- return 1;
- },
- extend:function(o,e){//扩展方法
- var i,a=arguments;//参数
- for(i=1;i<a.length;i++){
- if(a[i]!=null)
- e=a[i];//取得参数方法
- this.each(e,function(v,n){
- if(typeof(v)!='undefined')
- o[n]=v;
- });
- }
- return o;
- },
- trim:function(t){//去掉两边空格
- return (t?''+t:'').replace(/^/s*|/s*$/g,'');
- },
- createClass:function(s,p){//s表示需要创建的命名空间,p在此命名空间下的所有方法
- var current=this,sp,name_space,currName,scn,c,de=0;
- //类型的格式
- s=/^((static) )?([/w.]+)(:([/w.]+))?/.exec(s);
- //取得类的名称
- currName=s[3].match(/(^|/.)(/w+)$/i)[2];
- //创建一个新的命名空间
- name_space=current.createNS(s[3].replace(//./w+$/,''));
- //判断是否已经存在
- if(name_space[currName])
- return;
- //创建一个静态的类
- if(s[2]=='static'){
- name_space[currName]=p;
- if(this.onCreate)
- this.onCreate(s[2],s[3],name_space[currName]);
- return;
- }
- //创建一个默认构造函数
- if(!p[currName]){
- p[currName]=function(){};
- de=1;//构造函数创建
- }
- //添加扩展方法
- name_space[currName]=p[currName];
- name_space[currName]=current.extend(name_space[currName].prototype,p);
- if(s[5]){//类的继承,有待完成
- sp=current.resolve(s[5]);//分解已有名称空间
- //sp=sp.prototype;
- scn=s[5].match(//.(/w+)$/i)[1];//取得类名称
- c=name_space[currName];
- }
- // //添加一个静态方法
- // t.each(p['static'],function(f,n){
- // ns[cn][n]=f;
- // });
- // if(this.onCreate)
- // this.onCreate(s[2],s[3],ns[cn].prototype);
- },
- resolve:function(n,o){//分解已有命名空间
- var i,v;
- o= o|| window;
- if(n.indexOf('.')!=-1){
- n=n.split('.');//对字符串进行分解
- for(i=0,v=n.length;i<v;i++){
- o=o[n[i]];//取得已经有名称
- if(!o)
- break;
- }
- }
- else { o=o[n];}
- return o;
- },
- createNS:function(n,o){//创建命名空间,n是要创建的命名空间名
- var i,v;
- o=o || window;
- n=n.split('.');//对字符串进行分解
- for(i=0;i<n.length;i++){
- v=n[i];
- if(!o[v])
- o[v]={};
- o=o[v];
- }
- return o;
- }
- };
- window.$=base;
- base.init;
- (function(){
- base.createClass('static base.utils.Ajax',{
- get:function(url,data,callback){
- if(base.isFunction(data)){
- callback=data;
- data=null;
- }
- return this.Ajax({
- type:"GET",
- data:data,
- url:url,
- callback:callback
- });
- },
- post:function(url,data,callback){
- if(base.isFunction(data)){
- callback=data;
- data=null;
- }
- return this.Ajax({
- type:"POST",
- data:data,
- url:url,
- callback:callback
- });
- },
- Ajax:function(s){
- if(typeof s.data !="String" && s.data)
- s.data=this.param(s.data);
- if(s.type.toLowerCase()=="get" && s.data!=""){
- s.url+=(s.url.match(//?/)?"":"?");
- s.url+=s.data;
- }
- if(s.type.toLowerCase()=="post"){
- s.url+=(s.url.match(//?/)?"":"?");
- }
- s.url+="&_="+Math.random();
- var xmlHttp;
- try
- {
- xmlHttp=new XMLHttpRequest();
- }
- catch(e){
- try
- {
- xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
- }
- catch(e){
- xmlHttp=new ActiveXObject("Microsft.XMLHTTP");
- }
- }
- if( xmlHttp == null){
- return ;
- }
- xmlHttp.onreadystatechange=function(){
- if(xmlHttp.readyState==4){
- if(xmlHttp.status==200){
- if(s.callback && s.callback!=null && s.callback!=""){
- var tmp=s.callback;
- eval(tmp(xmlHttp.responseText));
- }
- }
- }
- }
- xmlHttp.open(s.type,s.url,true);
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- if(s.type.toLowerCase()=="post"){
- xmlHttp.send(s.data);
- }else{ xmlHttp.send(null);}
- },
- param:function(d){//取得序列化数值
- var dataInfo=[];
- if(d.constructor != Array && d)
- for(var i in d){
- if(d[i] && d.constructor !=Array && typeof d !='String'){
- dataInfo.push(encodeURIComponent(i)+"="+encodeURIComponent(d[i]));
- }
- }
- return dataInfo.join('&').replace(/%20/g, "+")
- }
- });
- })();
- //测试
- var str=[{pra:"sf"},{ss:"ss"}];
- $.utils.Ajax.post("Default.aspx",{pra:"顶替",sss:"fdsfd"},function(){alert('ddfdfdsfsd');});
js库,ajax调用
最新推荐文章于 2021-08-05 18:08:50 发布