用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 通用javascript函数库整理
Aug 14 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
Jul 21 Javascript
javascript 得到文件后缀名的思路及实现
May 09 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
Javascript中arguments对象的详解与使用方法
Oct 04 Javascript
Node.js 实现简单小说爬虫实例
Nov 18 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
May 20 Javascript
jquery传参及获取方式(两种方式)
Feb 13 jQuery
JS轮播图的实现方法2
Aug 25 Javascript
Javascript实现单选框效果
Dec 09 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
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
jquery中ajax学习笔记4
2011/10/16 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
理解Python中的With语句
2015/02/02 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python表达式的优先级详解
2020/02/18 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
一道Delphi上机题
2012/06/04 面试题
质量安全标语
2014/06/07 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
pytorch 使用半精度模型部署的操作
2021/05/24 Python