js 文件引入实现代码


Posted in Javascript onApril 23, 2010

也不好麻烦让他们从新写一个方法,由于他们都引用了这个AA.js文件,想在这边在AA.js后执行一个函数自动把jq库引入,于是想到引入js文件方法:

getScript : function(s,call){ 
var el = UI.DC('script'); 
        if (call) { 
            el.onload =el.onreadystatechange=call; 
        } 
        UI.A(el,'type','text/javascript'); 
        UI.A(el,'src',s); 
        UI.GT(document,'head')[0].appendChild(el); 
    } 
/*UI.DC为创建对象,UI.A为属性赋值,GT为getElementsByTagName的简写*/

于是这样执行UI.getScript("js/jquery/jquery-1.4.2.min.js",function(){alert("载入成功")});

结果在IE和ff下确实弹出了载入成功,可当我再HTML中使用jq的时候在IE下怎么都执行不了,不断刷新偶尔还能执行,放在服务器上和在客户端的静态页面也有差别,但在火狐下没有问题.........

于是想到是不是jq文件在载入的时候和html载入是并行的,当jq载入成功之前HTML文件已经执行,于是在html的body结束之时添加

<script> 
alert("html前执行") 
</script>

执行发现确实是先弹出hmtl前执行,后弹出载入成功。在火狐下也是这样。上传到服务器上时感觉火狐的弹出会同时出现.....

于是开始不解,到底怎么设置才能确保jq文件载入完之后才能执行html body中的东东,怎么像在head中添加<script type="text/javascript" src="js/jquery.js"></script>那样引入文件..
思索总想到以前浏览一个页面是他用了一个loading文件引入许多js文件,在html中就可使用这些引入的文件函数,搜索查到了这个js文件内容为:

var Collapsar = { 
Version: '0.0.1', 
require: function(libraryName) { 
// inserting via DOM fails in Safari 2.0, so brute force approach 
document.write('<script type="text/javascript" src="'+libraryName+'"></script>'); 
}, 
load: function() { 
if((typeof Prototype=='undefined') || 
(typeof Element == 'undefined') || 
(typeof Element.Methods=='undefined') || 
parseFloat(Prototype.Version.split(".")[0] + "." + 
Prototype.Version.split(".")[1]) < 1.5) 
throw("The Prototype JavaScript framework 1.5.0+ is required"); $A(document.getElementsByTagName("script")).findAll( function(s) { 
return (s.src && s.src.match(/loader\.js(\?.*)?$/)) 
}).each( function(s) { 
var path = s.src.replace(/loader\.js(\?.*)?$/,''); 
var includes = s.src.match(/\?.*load=([a-z,]*)/); 
(includes ? includes[1] : "").split(',').each( 
function(include) { 
Collapsar.require(path+include+'.js') }); 
}); 
} 
} 
Collapsar.load();

调用的时候为<script type="text/javascript" src="js/loder.js?load=jquery,...,..."></script>这样等号后面的文件都可引入,其实是这句在关键的作用 document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
刚看到有些疑惑write方法不是像文档内添加内容吗,内容应该在body标签中出现啊,实验发现如果是字符串确实出现在文档内,当如是script link等标签就出现在了head内;那在head中添加引用js文件难道和直接在head中一样载入他们之后才执行body中的内容....他载入和上面添加script有什么区别啊........

实验:在AA.js中添加:

UI.getsc=(function(){
document.write('<script type="text/javascript" src="js/jquery/jquery-1.4.2.min.js"></script>');
})()

让他自动执行,在body的第一行就引入jq的方法,实验确实成功了,在IE和在ff一样都可执行;
有时间继续实验...................

Javascript 相关文章推荐
广告代码静态化js通用函数
May 09 Javascript
jQuery 解析xml文件
Aug 09 Javascript
JS多物体 任意值 链式 缓冲运动
Aug 10 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
Mar 19 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
js使用递归解析xml
Dec 12 Javascript
JavaScript 学习笔记之操作符(续)
Jan 14 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
angularjs中$http异步上传Excel文件方法
Feb 23 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
网页图片延时加载的js代码
Apr 22 #Javascript
基于jQuery的表格操作插件
Apr 22 #Javascript
JQuery实现的在新窗口打开链接的方法小结
Apr 22 #Javascript
JQuery 技巧和窍门整理(8个)
Apr 22 #Javascript
超级酷和最实用的jQuery实例收集(20个)
Apr 21 #Javascript
基于jquery的超简单上下翻
Apr 20 #Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
Apr 20 #Javascript
You might like
PHP初学者头疼问题总结
2006/07/08 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
php生成rss类用法实例
2015/04/14 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
js 处理URL实用技巧
2010/11/23 Javascript
js数组的操作详解
2013/03/27 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
调试Python程序代码的几种方法总结
2015/04/28 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
python 从list中随机取值的方法
2020/11/16 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
幼儿发展评估方案
2014/06/11 职场文书
师范类求职信
2014/06/21 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技