用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 相关文章推荐
javascript 鼠标拖动图标技术
Feb 07 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
JS获取整个页面文档的实现代码
Dec 15 Javascript
jquery拖动插件(jquery.drag)使用介绍
Jun 18 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
简介JavaScript中toUpperCase()方法的使用
Jun 06 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
Vue-cli创建项目从单页面到多页面的方法
Sep 20 Javascript
微信小程序实现类似微信点击语音播放效果
Mar 30 Javascript
详解JavaScript原型与原型链
Nov 16 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
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
vue-cli3+typescript初体验小结
2019/02/28 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
利用python获得时间的实例说明
2013/03/25 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Python partial函数原理及用法解析
2019/12/11 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
python如何查看安装了的模块
2020/06/23 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
.NET面试10题
2014/02/24 面试题
简单叙述一下MYSQL的优化
2016/05/09 面试题
教师简历自我评价
2014/02/03 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
客户答谢会致辞
2015/01/20 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
数据库连接池
2021/04/06 MySQL