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 相关文章推荐
仿163填写邮件地址自动显示下拉(无优化)
Nov 05 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
Apr 16 Javascript
jquery显示和隐藏div特效实例
Feb 27 Javascript
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
jQuery Validate表单验证深入学习
Dec 18 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 Javascript
angularjs select 赋值 ng-options配置方法
Feb 28 Javascript
Vue + Elementui实现多标签页共存的方法
Jun 12 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
Aug 18 Javascript
快速解决element的autofocus失效问题
Sep 08 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学习的路线图
2013/07/10 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
python发腾讯微博代码分享
2014/01/10 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
基于Python的关键字监控及告警
2017/07/06 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
师范生自我鉴定
2014/03/20 职场文书
租房安全协议书
2014/08/20 职场文书
公司离职证明范本
2014/10/17 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
教师年度个人总结
2015/02/11 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
如何写好闭幕词
2019/04/02 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL