`
lovnet
  • 浏览: 6880013 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

梅子开源js框架研究(1)

阅读更多
/**//*---------------------------------------------------------------------------*
|Subject:JavaScriptFramework
|Author:meizz
|Created:2005-02-27
|Version:2007-06-06
|-----------------------------------
|MSN:huangfr@msn.comQQ:112889082Copyright(c)meizz
|http://www.meizz.com/jsframework/MIT-stylelicense
|Theabovecopyrightnoticeandthispermissionnoticeshallbe
|includedinallcopiesorsubstantialportionsoftheSoftware
*---------------------------------------------------------------------------
*/


if(typeof(System)!="function"&&typeof(Using)!="function")
...{

varS=window.System=function()
...{
this.setHashCode();
}


S.debug
=false;//false
S.currentVersion="20070606";

S._codebase
=...{};

try
...{
if(window!=parent&&parent.System&&parent.System._codebase)
S._codebase
=parent.System._codebase;
elseif(typeof(opener)!="undefined"&&opener.System&&opener.System._codebase)
S._codebase
=opener.System._codebase;
elseif(typeof(dialogArguments)!="undefined"&&dialogArguments.System)
S._codebase
=dialogArguments.System._codebase;
}

catch(ex)
...{}

vart=document.getElementsByTagName("SCRIPT");
t
=(S.scriptElement=t[t.length-1]).src.replace(/\/g,"/");

S.extend
=function(d,s)
...{
for(variins)
d[i]
=s[i];
returnd;
}
;

S.path
=(t.lastIndexOf("/")<0)?".":t.substring(0,t.lastIndexOf("/"));
S.resourcePath
=S.path+"/System/_resource";
S.hashCounter
=0;
S.NOT_SUPPORTED_XMLHTTP
="YourbrowserdonotsupportXMLHttp";

S.getUniqueId
=function()
...{
return"mz_"+(System.hashCounter++).toString(36);
}
;

S.toHashCode
=function(e)
...{
if(typeof(e.hashCode)!="undefined")
...{
returne.hashCode;
}


return(e.hashCode=System.getUniqueId());
}
;

S.supportsXmlHttp
=function()
...{
return"object"==typeof(System.xhr||(System.xhr=newXMLHttpRequest()));
}
;

S._getPrototype
=function(ns,argu)
...{
if(typeof(System._prototypes[ns])=="undefined")
returnnewSystem();

for(vara=[],i=0;i<argu.length;i++)
a[i]
="argu["+i+"]";

returneval("new(System._prototypes['"+ns+"'])("+a.join(",")+")");
}
;

S.ie
=navigator.userAgent.indexOf("MSIE")>0&&!window.opera;

S.alert
=function(msg)
...{
if(System.debug)
alert(msg);
}
;

S._userdata
=(System.ie&&!System.debug);S._parseResponse=function(ns,s)
...{
if(s==null||s.charAt(0)=="")
...{
System.alert(
"Maybefileencodingisn'tANSIorUTF-8");return""
}


if(s.charAt(0)=="ï")s=s.substr(3);//forfirefox
s=s.replace(/(^| )s*//+s*((Using|Import|Include)(("|'))/g,"$1$2");

if(System._userdata)
System.saveUserData(ns,s);

returns;
};

if(!window.XMLHttpRequest&&window.ActiveXObject)
{
window.XMLHttpRequest=function()
{
for(vari=0,a=['MSXML3','MSXML2','Microsoft'];i<a.length;i++)
{
try
{
returnnewActiveXObject(a[i]+'.XMLHTTP')
}
catch(ex){}
}
System.xhr=
"mz";
thrownewError(System.NOT_SUPPORTED_XMLHTTP);
}
}

S.load=function(namespace,path)
{
varx,ns=namespace,S=System;
path=S._mapPath(ns,path);

if(S._userdata&&/.js$/i.test(path)&&(x=S.loadUserData(ns)))
return(S._codebase[ns]=
"//fromuserdata "+x);
try
...{
if(S.supportsXmlHttp())
...{
x
=S.xhr;
x.open(
"GET",path,false);
x.send(
null);
if(x.readyState==4)
...{
if(x.status==0||/^file:/i.test(path))
returnS._parseResponse(ns,x.responseText);
elseif(x.status==200)
returnS._parseResponse(ns,x.responseText);
elseif(x.status==404)
S.alert(ns
+" Filenotfound");
else
thrownewError(x.status+":"+x.statusText);
}

}

elseS.alert(S.NOT_SUPPORTED_XMLHTTP);
}

catch(ex)
...{
S.alert(ns
+" "+ex.message);
}

return"";
}
;

S._exist
=function(ns,path)
...{
if(typeof(System._existences[ns])=="undefined")
returnfalse;
returnSystem._existences[ns]==System._mapPath(ns,path);
}
;

S._mapPath
=function(ns,path)
...{
if(typeof(path)=="string"&&path.length>3)
returnpath;
varp=System.path+"/"+ns.replace(/./g,"/")+".js";

returnp+((typeof(path)=="undefined"||path)?"":"?t="+Math.random());
}
;

window.Using
=function(namespace,path,rename)
...{
varN=namespace,C=N.substr(N.lastIndexOf(".")+1),S=System,i=S._prototypes;

if(S._exist(N,path))
...{
if(window[C]!=i[N])
window[C]
=i[N];
return
}


if(!/((^|.)[w_$]+)+$/.test(N))
thrownewError(N+"nonstandardnamespace")

for(vars,e,c=N+".",i=c.indexOf(".");i>-1;i=c.indexOf(".",i+1))
...{
e
=c.substring(0,i);
s
=(e.indexOf(".")==-1)?"window['"+e+"']":e;

if(e&&typeof(eval(s))==color: rgb(0,0,0);
分享到:
评论

相关推荐

    js树,包括梅子树和其他的相关树资料

    梅子树(Plum Tree)通常是指一种结合了Model-View-Controller(MVC)设计模式的JavaScript树控件。在MVC模式中,模型(Model)存储数据,视图(View)负责展示数据,控制器(Controller)处理用户交互。梅子树控件...

    梅子数据库编程经验汇总

    梅子的VFP数据库编程帮助,有很多常用的好东东如C/S源代码,VFP顶层表单及菜单等,很多新手的问题在这里都可以找到答案

    梅子故事2005整站系统(动易2005 sp2)

    梅子故事2005整站系统(动易2005 sp2)

    20200711_梅子萌_论文展示1

    20200711_梅子萌_论文展示1

    梅子的VFP资料集,包含VFP许多使用教程、例子。

    梅子的VFP资料集,包含VFP许多使用教程、例子、源代码。

    梅子园系列 Mztreeview1.0 Mztreeview2.0 日历控件 日期控件

    梅子园系列 Mztreeview1.0 Mztreeview2.0 日历控件 日期控件 详情请访问:http://www.cnblogs.com/qiaojun/articles/1428058.html

    css原生框架Summer框架

    框架大部分样式靠class选择器定义,就是说大部分标签都可以使用,框架还使用部分id选择器定义样式,框架也给table,th等标签定义了默认样式,无需重新编写css来定义,如果你是css小白可以参考该框架制作出更加强大的...

    古梅灵芝和梅子精抗过敏性作用的研究 (1999年)

    1. 研究背景与目的:该研究聚焦于探讨古梅灵芝和梅子精对于过敏反应的抑制作用。具体来说,研究的重点是这两种物质是否能抑制组胺的游离释放以及组胺导致的肠管收缩。 2. 过敏反应机制:过敏反应通常涉及免疫系统对...

    梅子日历

    梅子日历

    VISUAL FOXPRO 梅子3000问-技巧与问答word版(82页)

    《Visual FoxPro 梅子3000问 - 技巧与问答》是一份针对初学者和进阶用户深入理解Visual FoxPro编程语言的重要参考资料。这份文档包含了82页的详细内容,涵盖了广泛的问题和解答,旨在帮助读者解决在实际操作过程中...

    梅子黄了时时雨

    梅子黄了时时雨

    3个js日期时间控件(2个可选小时分钟)

    在JavaScript编程中,日期时间控件是网页交互中不可或缺的一部分,它们允许用户方便地选择或输入日期和时间信息。本文将详细介绍三个JavaScript日期时间控件,特别关注其中两个支持选择小时和分钟的控件。 首先,...

    2023125030204苏梅子.zip

    很抱歉,根据您提供的信息,"2023125030204苏梅子.zip" 是一个压缩包文件,但没有提供具体的描述或标签来指示它包含什么样的IT知识点。通常,压缩包文件可能包含各种类型的文件,如文档、图片、代码、数据库、配置...

    梅子_csdn

    1. **友情与互助**:梅子作为年长一岁的朋友,常常照顾和保护作者,这种互助和关爱是社会关系中重要的一部分,对于团队协作来说,互相支持和理解能够增强团队凝聚力。 2. **责任感与贡献**:文中提到农村孩子在农忙...

    广东石人嶂-梅子窝钨矿研究新进展 (2008年)

    在前人工作基础上,通过系统的野外观察,深入细致地对比研究发现,钨矿脉的“五层楼”模式在纵剖面上具正扇形结构,横剖面上具树形分叉结构,平面上沿构造带呈定向脉组 (群)分布。矿区深部存在有两期隐伏花岗岩侵入活动,...

    vfp 函数扩展myfll

    是Win32API的封装 部分函数取自网上开源算法 在相关函数中均有注明 "&gt;MyFll是专为Microsoft Visual FoxPro设计的扩展库 部分函数来自任明汉 RMH myF1论坛 前辈提供的myDll代码翻译而成 由于很多功能利用VFP处理比较...

    云南省宁洱县梅子乡土地开发整理占补平衡项目规划设计说明.doc

    《云南省宁洱县梅子乡土地开发整理占补平衡项目规划设计》是针对当地土地资源进行的一项重要规划,旨在实现耕地的动态平衡,增加耕地面积,提高耕地质量,并促进区域内的可持续发展。该项目由农业大学水利水电与建筑...

    宜昌梅子垭房地产开发项目规划设计说明书99.doc

    宜昌梅子垭房地产开发项目规划设计说明书99.doc

Global site tag (gtag.js) - Google Analytics