用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写的评论分页(还不错)
Dec 23 Javascript
Node.js 的异步 IO 性能探讨
Oct 08 Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 Javascript
jquery移动端TAB触屏切换实现效果
Dec 22 Javascript
JS前端笔试题分析
Dec 19 Javascript
bootstrap响应式工具使用详解
Nov 29 Javascript
jsonp跨域获取数据的基础教程
Jul 01 Javascript
详解Vue中使用Echarts的两种方式
Jul 03 Javascript
weui上传多图片,压缩,base64编码的示例代码
Jun 22 Javascript
完美解决通过IP地址访问VUE项目的问题
Jul 18 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
Jul 28 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 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
smarty中js的调用方法示例
2014/10/27 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
车工岗位职责
2013/11/26 职场文书
小学假期安全广播稿
2014/09/28 职场文书
银行稽核岗位职责
2015/04/13 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
python 远程执行命令的详细代码
2022/02/15 Python
MySQL数据库 安全管理
2022/05/06 MySQL