JS中简单的实现像C#中using功能(有源码下载)

先看看使用页面是如何调用的。


代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 <head> 
 <title> neverModules Using Function - http://www.never-online.net </title> 
 <meta http-equiv="ImageToolbar" content="no" /> 
 <meta name="author" content="never-online, BlueDestiny"/> 
 <meta name="keywords" content="never modules, Mozilla CSS, C#, .net, Reference, BlueDestiny, never-online"/> 
 <meta name="description" content="javascript reference, c sharp artilces"/> 
 <meta name="creator.name" content="never-online, BlueDestiny" /> 
 <style type="text/css" media="all" title="Default"> 
 body { 
 font:9pt "Verdana"; 
 } 
 </style> 
 <script type="text/javascript" src="System/system.js"></script> 
 <script type="text/javascript"> 
 //<![CDATA[ 
 Using("System.Utils.Jsclass"); 
 var jsclass = new Jsclass(); 
 jsclass.toString(); 
 //]]> 
 </script> 
 </head> 
 <body id="www.never-online.net"> 
 <p align="center">Power By never-online</a> 
 </body> 
</html> 
再看看System.Utils.Jsclass这个命名空间是如何的。 
var System = {}; System.Utils = {}; 
System.Utils.Jsclass = function() { 
 this.name = "jsclass"; 
 this.functions = "Using function test."; 
 System.Utils.Jsclass.prototype.toString = function() { 
 document.write(this.functions); 
 } 

接下来就是主要的Using这个函数了 
var Using = function (sNamespace, bUseCache) { 
 bUseCache = bUseCache===true; 
 var x=!!document.all?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest(); 
 var shortname = sNamespace.substring(sNamespace.lastIndexOf(".")+1); 
 sNamespace = sNamespace.replace(/\./g,"/")+".js"; 
 x.open("GET", sNamespace+(bUseCache?"?x="+Math.random():""), false); 
 x.send(null); var code = x.responseText; 
 window[shortname]=window.eval(code); 
}

下载此文件

(0)

相关推荐

  • C# using三种使用方法

    C# using 三种使用方式介绍 1.using指令.using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到. 例如:using System; 一般都会出现在*.cs中. 2.using别名.using + 别名 = 包括详细命名空间信息的具体的类型. 这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候.当需要用到这

  • C++ using namespace std 用法深入解析

    一 :<iostream>和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的. 后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h. 因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就

  • 谈C# using的用法与好处

    之前的一篇文章中的代码中有一个using的用法,刚开始查看了一些资料说是强制关闭对象的一个命令.今天又查了一些资料,才明白,原来using指令调用了一个方法--Dispose()方法.而Dispose()方法的作用就是释放所有的使用资源. 例: public void ExecuteCommand( string connString, string commandString ) { SqlConnection myConnection = new SqlConnection( connStr

  • C#中using指令的几种用法

    C#中using指令的用法 1.using指令 using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到. 例如: using System; using System.Data; 2.using别名 using + 别名 = 包括详细命名空间信息的具体的类型. 这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候.当需要用

  • Tomcat ssl报错Connector attribute SSLCertificateFile must be defined when using SSL with APR解决方法

    今天同事要求帮忙配置tomcat ssl,直接把linux下tomcat配置ssl这篇文章发给他了,没想到他居然说启动tomcat的时候,报Connector attribute SSLCertificateFile must be defined when using SSL with APR的错误,马上跑过去看,原来他的tomcat版本是7.0的,我发给他的是tomcat6的,检查了key,检查了配置文件,因为他直接复制的我发他文章的配置,折腾了2-3个小时,终于把问题给解决了. 系统:wi

  • mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法

    今天在启动mysql时出现以下问题: [root@www ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 网上的答案是各种各样的,最终解决问题的方法总结为以下,好多都是没有设置初始密码造成此问题的. 解决方法如下: [root@www ~]# service mysqld stop #先关闭mysql服务

  • MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决

    第一种方法: 推荐错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误. 原因分析: 在mysql.user表中可能出现user为空的记录,如: mysql> select host,user from user; +------------------+------+ | host | user | +------------------+------+ | % | test | | localhost

  • C#中using的三种用法

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型. 为命名空间创建别名. using 关键字还用来创建 using 语句  定义一个范围,将在此范围之外释放一个或多个对象. 请参见 using 语句.http://www.yaosansi.com/blog/article.asp?id=669 using namespace; using alias = type|namespace;  参数 Alias  您希望用来表示命名空间或类型的用户定义符号

  • 找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)

    今天将webserice里面的一个代码,拷到一个C#类,结果运行编译错误.DataBase = Server.MapPath("data.mdb");报错:找不到类型或命名空间名称"Server"(是否缺少 using 指令或程序集引用?) 但是我的确引用了名字空间using System.Web;为什么呢?因为Server的完整路径是System.Web.HttpContext.Current.Server.using System.Web是显然不够的:但是在从内

  • 不能忽略c#中的using和as操作符的用处

    是不是很多人不用c#中的using和as操作符?甚至不知道?  其实这2个操作符在小处非常有用. 1.using  按照msdn的解释 using 语句定义一个范围,在此范围的末尾将处理对象.  举例: class TestUsing:IDisposable      {          public void Dispose()           {              Console.WriteLine("Dispose");           } public voi

随机推荐