Mzz的jsframework
来源:互联网 发布:maven构建java项目打包 编辑:程序博客网 时间:2024/06/14 22:51
/*---------------------------------------------------------------------------*/
| Subject: JavaScript Framework
| Author: meizz
| Created: 2005-02-27
| Version: 2007-02-28
|-----------------------------------
| MSN: huangfr@msn.com QQ:112889082 Copyright (c) meizz
| http://www.meizz.com/jsframework/ MIT-style license
| The above copyright notice and this permission notice shall be
| included in all copies or substantial portions of the Software
/*---------------------------------------------------------------------------*/
window.System = function(){this.setHashCode();}
System.debug=false; //false
System._codebase={};
try
{
if (window!=parent && parent.System && parent.System._codebase)
System._codebase = parent.System._codebase;
else if ("undefined"!=typeof opener&&opener.System&&opener.System._codebase)
System._codebase = opener.System._codebase;
else if ("undefined"!=typeof dialogArguments && dialogArguments.System)
System._codebase = dialogArguments.System._codebase;
}
catch(ex){}
System.MISSING_ARGUMENT="Missing argument";
System.ARGUMENT_PARSE_ERROR="The argument cannot be parsed";
System.NOT_SUPPORTED_XMLHTTP="Your browser do not support XMLHttp";
System.FILE_NOT_FOUND="File not found";
System.MISCODING="Maybe file encoding is not ANSI or UTF-8";
System.NAMESPACE_ERROR=" nonstandard namespace";
System.hashCounter=0;
System.currentVersion="20070228_30";
var t=document.getElementsByTagName("SCRIPT");
t=(System.scriptElement=t[t.length-1]).src.replace(////g, "/");
System.extend=function(d,s){for(var i in s)d[i]=s[i];return d;};
System.path=(t.lastIndexOf("/")<0)?".":t.substring(0, t.lastIndexOf("/"));
System.resourcePath=System.path +"/System/_resource";
System.getUniqueId=function(){return "mz_"+(System.hashCounter++).toString(36);};
System.toHashCode=function(e)
{
if("undefined"!=typeof e.hashCode) return e.hashCode;
return e.hashCode=System.getUniqueId();
};
System.supportsXmlHttp=function()
{
return "object"==typeof(System._xmlHttp||(System._xmlHttp=new XMLHttpRequest()));
};
System._getPrototype=function(namespace, argu)
{
if("undefined"==typeof System._prototypes[namespace])return new System();
for(var a=[], i=0; i<argu.length; i++) a[i]="argu["+ i +"]";
return eval("new (System._prototypes['"+namespace+"'])("+a.join(",")+")");
};
System.ie=navigator.userAgent.indexOf("MSIE")>0 && !window.opera;
System.ns=navigator.vendor=="Netscape";
System.alert=function(msg){if(System.debug)alert(msg);};
System._parseResponseText=function(s)
{
if(null==s||"/uFFFD"==s.charAt(0)){System.alert(System.MISCODING);return "";}
if("/xef"==s.charAt(0))s=s.substr(3); //for firefox
return s.replace(/(^|/n)/s*////+/s*((Using|Import|Include)/((/"|/'))/g,"$1$2");
};
if(!window.XMLHttpRequest && window.ActiveXObject)
{
window.XMLHttpRequest = function()
{
var msxmls=['MSXML3','MSXML2','Microsoft'];
for(var i=0;i<msxmls.length;i++)
try{return new ActiveXObject(msxmls[i]+'.XMLHTTP')} catch(ex){}
System._xmlHttp="mz"; throw new Error(System.NOT_SUPPORTED_XMLHTTP);
}
}
System.load = function(namespace, path)
{
try
{
if(System.supportsXmlHttp()){path=System._mapPath(namespace, path);
var x=System._xmlHttp; x.open("GET",path,false); x.send(null);
if (x.readyState==4){if(x.status==0||/^file/:/i.test(path))
return System._parseResponseText(x.responseText);
else if(x.status==200)return System._parseResponseText(x.responseText);
else if(x.status==404)System.alert(namespace+"/n"+System.FILE_NOT_FOUND);
else throw new Error(x.status +": "+ x.statusText);}}
else System.alert(System.NOT_SUPPORTED_XMLHTTP);
}
catch(ex){System.alert(namespace+"/n"+ex.message);}return "";
};
System._exist = function(namespace, path)
{
if("undefined"==typeof System._existences[namespace]) return false;
return System._existences[namespace]==System._mapPath(namespace,path);
};
System._mapPath = function(namespace, path)
{
if("string"==typeof path && path.length>3) return path;
var p=System.path +"/"+ namespace.replace(//./g,"/") +".js";
return p +(("undefined"==typeof path||path) ? "" : "?t="+ Math.random());
};
window.Using = function(namespace, path, rename)
{
var N=namespace, C=N.substr(N.lastIndexOf(".")+1), code=N+".";
if(System._exist(N,path)){window[C]=System._prototypes[N];return}
if(!/((^|/.)[/w/$]+)+$/.test(N))throw new Error(N+System.NAMESPACE_ERROR);
for(var s,e,i=code.indexOf("."); i>-1; i=code.indexOf(".", i+1)){
e=code.substring(0,i);s=(e.indexOf(".")==-1)?"window[/""+e+"/"]":e;
if(e&&"undefined"==typeof(s)){eval(s+"=function(){return "
+"System._getPrototype(/""+e+"/", arguments)}");}}
if("string"!=typeof System._codebase[N]&&(code=System.load(N,path)))
System._codebase[N]=code+";/r/nSystem._prototypes['"+
N+"']=window['"+(rename||C)+"']="+C;code="";
System._existences[N]=System._mapPath(N, path);
if("string"==typeof (s=System._codebase[N]))try{(new Function(s))()}
catch(e){System.alert("Syntax error on load "+ N +"/n"+ e.message);}
//alert(System._codebase[namespace])
};
window.Import=function(namespace,path,rename){Using(namespace,path,rename)};
window.Instance=function(hashCode){return System._instances[hashCode]};
window.Include=function(namespace, path)
{
var N=namespace,code; if(System._exist(N, path)) return;
if(!/((^|/.)[/w/$]+)+$/.test(N))throw new Error(N+System.NAMESPACE_ERROR);
if("string"!=typeof System._codebase[N])if(System.supportsXmlHttp()
&& (code=System.load(N, path))) System._codebase[N]=code;
System._existences[N]=System._mapPath(N, path);
var B=("string"==typeof(System._codebase[N]));try{
if(window.execScript&&B)window.execScript(System._codebase[N]);else
{
var s=document.createElement("SCRIPT");s.type="text/javascript";
if(B)s.innerHTML="eval(System._codebase['"+N+"']);";
else s.src=System._existences[N]=System._mapPath(N,path);
document.getElementsByTagName("HEAD")[0].appendChild(s);
setTimeout(function(){s.parentNode.removeChild(s)},99);}
}catch(B){System.alert("Syntax error on include "+N+"/n"+B.message);}
};
Function.READ=1;Function.WRITE=2;Function.READ_WRITE=3;
Function.prototype.addProperty=function(name,initValue,r_w)
{
var capital=name.charAt(0).toUpperCase()+name.substr(1);
r_w=r_w||Function.READ_WRITE; name="_"+name; var p=this.prototype;
if("undefined"!=typeof initValue) p[name]=initValue;
if(r_w&Function.READ) p["get"+ capital]=function(){return this[name];};
if(r_w&Function.WRITE) p["set"+ capital]=function(v){this[name]=v;};
};
Function.prototype.Extends=function(SuperClass,ClassName)
{
var op=this.prototype, i, p=this.prototype=new SuperClass();
if(ClassName)p._className=ClassName; for(i in op)p[i]=op[i];
if(p.hashCode)delete System._instances[p.hashCode];return p;
};
System._instances={};
System._prototypes=
{
"System":System,
"System.Object":System,
"System.Event":System.Event
};
System._existences=
{
"System":System._mapPath("System"),
"System.Event":System._mapPath("System.Event"),
"System.Object":System._mapPath("System.Object")
};
t=System.Extends(Object, "System"); System.Object = System;
t.decontrol=function(){var t;if(t=this.hashCode)delete System._instances[t]};
t.addEventListeners=function(type, handle)
{
if("function"!=typeof handle)
throw new Error(this+" addEventListener: "+handle+" is not a function");
if(!this._listeners) this._listeners={};
var id=System.toHashCode(handle), t=this._listeners;
if("object"!=typeof t[type]) t[type]={}; t[type][id]=handle;
};
t.removeEventListener=function(type, handle)
{
if(!this._listeners)this._listeners={};var t=this._listeners;
if(!t[type]) return; var id=System.toHashCode(handle);
if( t[type][id])delete t[type][id];if(t[type])delete t[type];
};
t.dispatchEvent=function(evt)
{
if(!this._listeners)this._listeners={};
var i, t =this._listeners, p =evt.type;
evt.target=evt.srcElement=evt.target||evt.srcElement||this;
evt.currentTarget=this; if(this[p])this[p](evt);
if("object"==typeof t[p]) for(i in t[p]) t[p][i].call(null, evt);
delete evt.target;delete evt.currentTarget;delete evt.srcElement;
return evt.returnValue;
};
t.setHashCode=function()
{
System._instances[(this.hashCode=System.getUniqueId())]=this;
};
t.getHashCode=function()
{
if(!this.hashCode)this.setHashCode(); return this.hashCode;
};
t.toString=function(){return "[object "+(this._className||"Object")+"]";};
System.getType=function(e)
{
if("object"!=typeof(e))return typeof(e);
if("[object Object]"==e)return "object";
if(//[object/s+([^/s/]]+)/]/.test(e))return RegExp.$1;
else return "object";
};
System.Event=function(type){this.type=type;};
t=System.Event.Extends(System,"System.Event");
t.returnValue=true;t.cancelBubble=false;
t.target=t.currentTarget=t.srcElement=null;
t.stopPropagation=function(){this.cancelBubble=true;};
t.preventDefault =function(){this.returnValue=false;};
if(System.ie && !System.debug) Include("System.Plugins.IE");//IE UserData
if(window.opera) Include("System.Plugins.Opera"); //Opera support
Include("System.Global");
Include("Csdn.Common");
- Mzz的jsframework
- 新版csdn blog中 jsframework.js 的问题探源?
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- 的
- jsf+hibernate+spring学习
- oracle语句优化30例子
- 嘿,新股民吧?
- BPEL4WS1.1学习笔记[1]
- 详细解析C语言中的sizeof
- Mzz的jsframework
- 求助treeview节点连接到动态创建的groupbox``
- for update 和for update of xxx的区别和用法
- Struts 与 Velocity 的集成
- K线详解【图文】
- 用驱动隐藏进程
- 对于not in 和 not exists的性能区别:
- Java虚拟机类装载:原理、实现与应用
- 如何在Action里返回值 [收藏]