用JS实现的一个include函数


Posted in Javascript onJuly 21, 2007

很多语言都有类似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文件的大。 

function include_js(path,reload)   
{   
       var scripts = document.getElementsByTagName("script");   
       if (!reload)   
       for (var i=0;i<scripts.length;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);   
}
Javascript 相关文章推荐
JS Timing
Apr 21 Javascript
JS模板实现方法
Apr 03 Javascript
js实现一个链接打开两个链接地址的方法
May 12 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
Nov 03 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
Vue 动态组件components和v-once指令的实现
Aug 30 Javascript
JQuery复选框全选效果如何实现
May 08 jQuery
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
Aug 15 Javascript
Openlayers显示瓦片网格信息的方法
Sep 28 Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 Javascript
代码精简的可以实现元素圆角的js函数
Jul 21 #Javascript
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
Jul 21 #Javascript
用javascript实现读取txt文档的脚本
Jul 20 #Javascript
符合W3C网页标准的iframe标签的使用方法
Jul 19 #Javascript
javascript实现unicode和字符的互相转换
Jul 18 #Javascript
js实现的网页颜色代码表全集
Jul 17 #Javascript
JTrackBar水平拖动效果
Jul 15 #Javascript
You might like
PHP单例模式详细介绍
2015/07/01 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
Python xlwt模块使用代码实例
2020/06/10 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
电钳工人个人求职信
2014/05/10 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
邀请函怎么写
2015/01/30 职场文书
经营场所使用证明
2015/06/19 职场文书
运动会班级前导词
2015/07/20 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书