js动态引入的四种方法


Posted in Javascript onMay 05, 2018

本文表述了关于js动态引入四种方式的实例代码。分享给大家供大家参考,具体如下:

index.html

<html> 
 <head> 
 <meta content="text/html;charset=utf-8" http-equiv="content-type"> 
 <title> </title> 
 <script src='' id="s1"></script> 
 <script src="dynamic.js"></script> 
 </head> 
 <body> 
 </body> 
</html>

test.js

alert("hello! I am test.js"); 
var str="1";

dynamic.js

//第一种方式:直接document.write 但这样会把当前的页面全覆写掉 
//document.write("<script src='test.js'><\/script>"); 
 
//第二种方式:动态改变已有script的src属性 
//s1.src="test.js" 
 
//第三种方式:动态创建script元素 
/* var oHead = document.getElementsByTagName('HEAD').item(0); 
 var oScript= document.createElement("script"); 
 oScript.type = "text/javascript"; 
 oScript.src="test.js"; 
 oHead.appendChild(oScript); 
*/ 
//其实原理就是利用dom动态的引入一个js到文件中来~就能和原有的js通信了~ 
//alert(str); 
 
/*以上三种方式都采用异步加载机制,也就是加载过程中,页面会往下走, 
如果这样的话会有问题的,如上面的str就访问不到,因为当程序执行alert(str)时,test.js还在加载Ing.... 
那么第四种就是基于ajax请求的,且是推荐
*/ 
function GetHttpRequest() 
{ 
 if ( window.XMLHttpRequest ) // Gecko 
 return new XMLHttpRequest() ; 
 else if ( window.ActiveXObject ) // IE 
 return new ActiveXObject("MsXml2.XmlHttp") ; 
} 
 
function ajaxPage(sId, url){ 
 var oXmlHttp = GetHttpRequest() ; 
 oXmlHttp.onreadystatechange = function() 
 { 
 if (oXmlHttp.readyState == 4) 
 { 
 includeJS( sId, url, oXmlHttp.responseText ); 
 } 
 } 
 oXmlHttp.open('GET', url, false);//同步操作 
 oXmlHttp.send(null); 
} 
 
function includeJS(sId, fileUrl, source) 
{ 
 if ( ( source != null ) && ( !document.getElementById( sId ) ) ){ 
 var oHead = document.getElementsByTagName('HEAD').item(0); 
 var oScript = document.createElement( "script" ); 
 oScript.type = "text/javascript"; 
 oScript.id = sId; 
 oScript.text = source; 
 oHead.appendChild( oScript ); 
 } 
} 
ajaxPage( "scrA", "test.js" ); 
alert( "主页面动态加载JS脚本。"); 
alert( "主页面动态加载a.js并取其中的变量:" + str );

上文所表述的全部内容是js动态引入,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Javascript 面向对象(二)封装代码
May 23 Javascript
select标签模拟/美化方法采用JS外挂式插件
Apr 01 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 Javascript
js钢琴按钮波浪式图片排列效果代码分享
Aug 26 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 Javascript
JavaScript中return用法示例
Nov 29 Javascript
jquery UI Datepicker时间控件冲突问题解决
Dec 16 Javascript
AngularJS日程表案例详解
Aug 15 Javascript
Vue from-validate 表单验证的示例代码
Sep 26 Javascript
vue自定义filters过滤器
Apr 26 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
vue-cli的工程模板与构建工具详解
Sep 27 Javascript
关于HTML5的data-*自定义属性的总结
May 05 #Javascript
深入浅析Vue.js计算属性和侦听器
May 05 #Javascript
详解js跨域请求的两种方式,支持post请求
May 05 #Javascript
vue 注册组件的使用详解
May 05 #Javascript
Vue三层嵌套路由的示例代码
May 05 #Javascript
动态加载JavaScript文件的3种方式
May 05 #Javascript
Node.js的Koa实现JWT用户认证方法
May 05 #Javascript
You might like
php判断电子邮件是否正确方法
2018/12/04 PHP
PHP7 标准库修改
2021/03/09 PHP
js constructor的实际作用分析
2011/11/15 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
python简单实现基数排序算法
2015/05/16 Python
Python可变参数函数用法实例
2015/07/07 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
元宵晚会主持词
2014/03/25 职场文书
我爱读书演讲稿
2014/05/07 职场文书
运动会口号16字
2014/06/07 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏