document.write('<script src="test.js"></scri' + 'pt>');

解决方案 »

  1.   

    因为项目中用到的 js 较多, 就考虑写一个脚本库, 但脚本库中 js 文件多了以后, 可能就会存在互相引用的问题, 这个问题搞了很长时间了, 还是找不到方法解决.
      

  2.   

    我写了一个 javascript framework ,从系统级解决了此类问题!
      

  3.   

    动态加载JScript不是JavaScript完全可以实现。去看看prototype.js,会有启发的
      

  4.   

    prototype.js 的强项不是载入管理JS代码,它只是给了你一些基础的脚本库和类继承方法罢了
      

  5.   

    我写了一个 javascript framework ,从系统级解决了此类问题!
    ——————————————————————————————————我也写了一个耶,meizz(梅花雪) 你什么时候发布啊?
      

  6.   

    写JS的东西,现在感觉很提不起干劲。............... :<
      

  7.   

    prototype.js 是什么?请指教。
      

  8.   

    js的动态引用方法:
      
    function(jsSrc){
       var head=document.getElementsByTagName("head")[0];
       var scripts=head.getElementsByTagName("SCRIPT");
       for(var i=0;i<scripts.length;i++){
       var src=scripts[i].src;
       if(src==jsSrc) return false;
       }
       var script=document.createElement("SCRIPT");
       script.language="javascript";
       script.id=jsName;
       script.src=jsSrc;
       script.defer=true;
       head.appendChild(script);
       return true;
      }不过在js里导入另外一个js文件后 不能无法立即使用第二个js的变量,必须延迟执行脚本语句 :)
      

  9.   

    meizz(梅花雪) 
    Godknow(没钱吃饭) 
    能讲讲你们的framework的思路吗?我觉得“guyan999(深海) ”的方式应该解决不了我的问题。
      

  10.   

    我觉得这个不是重要的问题,主要是因为javascript本身就是一种比较随意的语言,而且大多用于一些较小的范围,没有充分考虑重用问题,造成编码中不规范,容易造成命名冲突等等很多问题。
    如果是你自己要用于比较复杂的应用,一开始就定好规范就可以较好的自己创作出一套方便的库来使用了。
    你想一下如果没有上面提到的规范的建立,你随意的引入其他文件还是很危险的行为,毕竟在Html文件中引入js的时候都是在顶层框架中引入,所有js定义的全局变量等等都是通用的,你就是在js文件中引入js文件还是避免不了这个问题。
    java可以通过import引入主要的还是系统提供的库部分,而不是随便的什么文件啊,其他脚本语言比如python等的文件引入也是要注意这样的问题的。
    综述一下,就是你需要有完善的规范,我想这也是meizz(梅花雪)的javascript framework 的能够建立的基础。
      

  11.   

    再回到楼主迫切的问题上,有了前文的理论基础,其实你在Html来引入多个js文件和js引入js就没有什么区别了。你完善了js框架后,需要使用某个文件就在html中引入,然后在后面的js文件中像本身内容一样接着使用就好了,当然,你其实在后面的使用中还是要注意名字空间等等问题的,也就是不能影响到原有框架(这个是起码的条件)。
    对于框架的建立,其实可以仿照js默认框架,进行多层次的包装归类,比如实现算法的归于一类,实现接口的归于一类等等(这句仅仅是表达一个意思,你不会照着作吧!),然后起一个方便记忆,有唯一的名字来标识。
    对于具体的应用,你选定一个好的命名规范基本上就够了。
      

  12.   

    xdspower() 
    多谢。
    你所说的和我本来的基本思路差不多,但我有另一个原因导致有我现在的这种需求。
    我现在忙,稍后再来发贴。
    再次感谢。
      

  13.   

    不错,xdspower 把原理讲得非常的透彻。写 framework 的目的就是为了模块化每一个JS脚本组件,动态载入,统一管理。我实现了 namespace 的模式,可以解决同名模块的冲突问题。至于guyan999(深海) 所说的不能“立即”使用载入的JS脚本问题我也已经解决了。可以给你一个片断:<script src="ui/scripts/jsframework.js"></script>
    <script src="ui/scripts/jsframework.js">/*<![CDATA[*/
    Using("System.Web.UI.WebControls.MzTreeView");
    var a = new MzTreeView();
    a.dataSource={"-1_1": "text: CSDN社区起始点; JSData: communitytree.js"};
    a.useCheckbox=true
    document.write(a.render());
    a.expandLevel(1);
    /*]]>*/</script>这就是我现在写的树控件在HTML网页里加载的所有代码。
      

  14.   

    通过XMLHttpRequest传送js代码,真强啊!
      

  15.   

    我的意思是这样:javascript|
              |--utils|
              |       |--string.js
              |       |--number.js
              |       |--......
              |--controls|
              |          |--textbox.js
              |          |--listbox.js
              |          |......
              |--......我建立了一个类似上面结构的js库,每个js文件中包含了相应的一组操作功能,比如listbox.js中包括了添加、删除、清空、移动各选项等功能,string.js包括了javascript没有提供了,但又是我自己所需要的一些字符串处理的功能。
    但有时可能会需要在listbox.js中调用string.js的某一个函数功能(这只是一个举例),如果有了类似于java中的import的功能的话,那实现起来就方便多了,但问题是没有这项功能。我这样算是说清楚了吗?我是用.NET开发网站程序的,虽然有了这些js库,在<head></head>段中编写js时可以方便一些,但出于各方面考虑,不希望把代码写在<head></head>中,而希望能写在一个单独的js文件中然后在<head></head>段的<script ......></script>中调用,比如:Login.aspx调用login.js
    CheckUser.aspx调用checkuser.js我个人认为,这也是系统模块文化的一种方式,虽然可能没这种必要,但在一个页面中,如果js代码很多的话(比如有个七八十行,甚至更多),那我觉得就很有用了。但这样就造成我希望在login.js和checkuser.js中想调用string.js和number.js中的功能就不知道该怎么调用。我想我应该是说清楚我的意图了,我自己考虑了很长时间,始终没有找到好的方法。因此在这里发出这个贴子,希望大家能讨论一下。有空再来讨论。
      

  16.   

    把js库的结构大概的样式再贴一下
    javascript|
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--utils|
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--string.js
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--number.js
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--......
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--controls|
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--textbox.js
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--listbox.js
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|......
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--......
      

  17.   

    显示不对,再贴一遍,再不对也不贴了,希望大家能理解我的意思。
    javascript|
         |--utils |
         |    |--string.js
         |    |--number.js
         |    |--......
         |--controls|
         |     |--textbox.js
         |     |--listbox.js
         |     |......
         |--......
      

  18.   

    meizz(梅花雪) 你能不能具体说说怎么解决的,或者给我看看具体的加载代码?
      我写了一个类似ZK的ajax框架,其中也包括了一套client的framework,但是在动态导入js上遇到问题,只好采取延迟加载的方式