用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获取元素样式属性值的方法
Dec 25 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
jquery的map与get方法详解
Nov 04 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
May 08 Javascript
JavaScript事件委托技术实例分析
Feb 06 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
详解如何用模块化的方式写vuejs
Dec 16 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
Jan 31 Javascript
Vue组件通信的四种方式汇总
Feb 08 Javascript
Puppeteer环境搭建的详细步骤
Sep 21 Javascript
详解vue项目接入微信JSSDK的坑
Dec 14 Javascript
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
代码精简的可以实现元素圆角的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
MySQL授权问题总结
2007/05/06 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
js文字横向滚动特效
2015/11/11 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
详解vue中的computed的this指向问题
2018/12/05 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
python进阶教程之异常处理
2014/08/30 Python
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
python批量制作雷达图的实现方法
2016/07/26 Python
Python语言进阶知识点总结
2019/05/28 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
行政助理岗位职责
2013/11/10 职场文书
物流仓储计划书
2014/01/10 职场文书
绿色环保口号
2014/06/12 职场文书
个人违纪检讨书
2014/09/15 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
信息技术国培研修日志
2015/11/13 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
财产分割协议书
2016/03/22 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书