DANCE WITH JAVA

开发出高质量的系统

常用链接

统计

积分与排名

好友之家

最新评论

在一个js文件中引入另一个js文件

第一个js文件(被引入的js文件),文件名one.js,内容如下
function alertInOne(){
    alert(
'in one');
}

第二个js文件,文件名two.js,内容如下
//注意这个地方
document.write("<script language='javascript' src='one.js'></script>");
function alertInTwo()
{
    alert(
"in Two");
}

调用的html文件,只需要引入two.js,就能引入one.js了
<script language='javascript' src="two.js"></script>
<script language="javascript">
    alertInOne();
    alertInTwo();
</script>

应用场合:
在平时开发的时候,我们都会有一些js文件的积累,大部份场合是不需要重新写的。
但我们会把js文件的功能尽可能的细分,以便引入的时候不引入无用的代码,但这样造成的问题是在jsp文件
中要写大量的这样的句子
<script language='javascript' src="two.js" charset="utf-8"></script>
如果你有100个jsp文件,都用到10个js文件,这个时候每个jsp文件写10句引入,这个是个麻烦的事情
现在,通过js文件的引入可以解决这个问题。定义一个js文件用来引入一些组合,jsp文件则只需要引入1个
这样的js文件就可以了。js代码少了100*99行

另外引入的js文件时候最好加上charset,特别是你的js文件有非英文,数字的时候。
事例的代码下载:http://www.blogjava.net/Files/dreamstone/importJs.rar

posted on 2007-02-12 17:00 dreamstone 阅读(50239) 评论(6)  编辑  收藏 所属分类: jdk相关脚本语言javascript

评论

# re: 在一个js文件中引入另一个js文件 2007-02-20 09:51 kedou

这种逻辑是对的,但是有时如果一个公共js所包含的js太多,而引用此js的html又不需要把它们全部引入进来,这样是不是对网页加载速度有引响,所以我通常是需要引入哪个js就直接引入,因为通常情况下告个页面所需的js会不相同  回复  更多评论   

# re: 在一个js文件中引入另一个js文件 2007-09-10 14:06 leonzhu

但有个问题,这种方法是不能在 two.js 中用 one.js 中定义的函数。
浏览器似乎是先解析直接被 html 用的 two.js
在两个文件中加 alert 即可发现。
所以,这种方案并不完美。
暂时未找到解决办法。  回复  更多评论   

# re: 在一个js文件中引入另一个js文件 2007-09-10 14:48 dreamstone

@kedou
为什么要在一个js文件中引入太多 ?
体重这种方法并不是让所有的页面都这么处理,简单的引入1-2个js的直接引入就ok了,但有些比较复杂的比如我的自定义js文件中会有一个专门处理字符串的
比如trim ,判断长度(能区别汉字和字幕混合的),判断非空,是否半角等
有一个处理日期的:验证各种格式的日期
有专门的用来校验各种数字的。
专门用来校验禁止的,禁止输入非数字,禁止复制,禁止拖放,禁止某个键等等
这些是基本每个都要用到的。
还有写不是最常用的,比如ajax的封装
比如treeviewer
比如tableviewer的插删改
比如关联列表
比如动态生成控件
如果用到的是不常用的就直接引入,不用文中提到的方式。
但上边常用的就需要每个都引入,所以可以把常用的用文中提到的方式统一起来。
而且统一起来的方式和分别引入不是互斥的,可以自己灵活掌握。  回复  更多评论   

# re: 在一个js文件中引入另一个js文件 2007-09-10 14:50 dreamstone

@leonzhu
不知道你怎么尝试的,我这里是可以的。
one.js不变
function alertInOne(){
alert('in one');
}

two.js中调用one.js中的函数
document.write("<script language='javascript' src='one.js'></script>");
function alertInTwo(){
alertInOne();
alert("in Two");
}

html中调用,没有问题
<script language='javascript' src="two.js"></script>
<script language="javascript">
//alertInOne();
alertInTwo();
</script>
  回复  更多评论   

# re: 在一个js文件中引入另一个js文件 2013-01-06 09:45 yahoo

@leonzhu
@楼主

你们之间有一个差别:
document.write("<script language='javascript' src='one.js'></script>");
其中 src='one.js' 中路径的差别

原因:由于是调用方法document.write() ,所以当 html 文件引入two.js 时调用的应该以html 为基准的路径,而非two.js为基准的路径。

如果引入路径 src='one.js' 是以html文件相对one.js 的路径,那么就不会有问题了  回复  更多评论   

# re: 在一个js文件中引入另一个js文件 2013-04-25 17:54 lsw521314

好强悍的论证!@dreamstone
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: