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中this做事件参数相关问题解答
Mar 17 Javascript
浅析JS中document对象的一些重要属性
Mar 06 Javascript
js从Cookies里面取值的简单实现
Jun 30 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
Feb 26 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
May 31 Javascript
js控制li的隐藏和显示实例代码
Oct 15 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
vue登录路由验证的实现
Dec 13 Javascript
Vue中computed与methods的区别详解
Mar 24 Javascript
Koa2 之文件上传下载的示例代码
Mar 29 Javascript
微信小程序自定义顶部组件customHeader的示例代码
Jun 03 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图片验证码实例
2014/03/21 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
js实现抽奖的两种方法
2020/03/19 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
python操作cfg配置文件方式
2019/12/22 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
自我鉴定范文300字
2013/10/01 职场文书
致200米运动员广播稿
2014/02/06 职场文书
2014年教师节寄语
2014/08/11 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
Django如何与Ajax交互
2021/04/29 Python
Nginx缓存设置案例详解
2021/09/15 Servers
Python学习之时间包使用教程详解
2022/03/21 Python