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 闭包疑问
Dec 30 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
Jan 11 Javascript
通用无限极下拉菜单的实现代码
May 31 Javascript
一个例子轻松学会Vue.js
Jan 02 Javascript
详解puppeteer使用代理
Dec 27 Javascript
ES6基础之数组和对象的拓展实例详解
Aug 22 Javascript
vue实现评论列表功能
Oct 25 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
Mar 07 Javascript
微信小程序收藏功能的实现代码
Jun 19 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合并两个数组的两种方式的异同
2012/09/14 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
destoon各类调用汇总
2014/06/20 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
javascript 面向对象编程 function也是类
2009/09/17 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
利用python代码写的12306订票代码
2015/12/20 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
公司新员工的演讲稿注意事项
2014/01/01 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python