Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7843524
  • 博文数量: 92
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 5216
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-15 17:17
文章分类

全部博文(92)

文章存档

2011年(1)

2008年(91)

我的朋友

分类: 系统运维

2008-04-24 14:59:16

用JS实现的一个include函数

发布:dxy 发布日期:2007-7-21 字体:[ ] 类型:转载
很多语言都有类似php中的include和require功能的函数,而唯独javascript没有。 
很早就想在js中实现类似的功能,尝试了很多次都没有成功,那天在google上搜索一些关于动态加载css文件的关键词时,发现一个blog(地址找不到了)上的一个为网页的head标签增加link元素的函数,于是就改了一下,写了这个函数。 
用法: 
include_js(src,[reload]); 
src: js文件的路径名 
reload:可选参数,0或1,表示是否重复加载同一个url的js文件。 
说明: 
当包含的js文件中有document.write方法时,在IE下没有反应,但在Mozilla Firefox 下就会让你原来的网页消失,只显示document.write出来的内容:mad:  
嘿嘿,对于这个问题,我有妙招: 
就是重定义 document.write方法,让他不显示任何东西。具体做法: 
在 include_js 之前加上这句 
document.write = function () { return false;}
这样,就算include过来的js文件含有document.write方法我们也不怕它破坏网页了!:lol::lol: 
用途: 
本函数可以用于一些和统计的js文件异步加载,避免了因加载js文件而造成的网页显示速度慢的问题。 
将此函数修改一下便可以动态加载css文件,不过用处就没有加载js文件的大。 
[]CODE:

function include_js(path,reload)  
{  
       var scripts = document.getElementsByTagName("script");  
       if (!reload)  
       for (var i=0;i              if (scripts[i].src && scripts[i].src.toLowerCase() == path.toLowerCase() ) return;  
       var sobj = document.createElement('script');  
       sobj.type = "text/javascript";  
       sobj.src = path;  
       var headobj = document.getElementsByTagName('head')[0];  
       headobj.appendChild(sobj);  
阅读(1070) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~