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 相关文章推荐
iis6+javascript Add an Extension File
Jun 13 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
Mar 22 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
Jul 14 Javascript
Javascript堆排序算法详解
Dec 03 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
JS日程管理插件FullCalendar简单实例
Feb 07 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 Javascript
vue bus全局事件中心简单Demo详解
Feb 26 Javascript
layer实现弹出层自动调节位置
Sep 05 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 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中mysql与mysqli的区别分析
2013/06/10 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
Convert Seconds To Hours
2007/06/16 Javascript
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
初探nodeJS
2017/01/24 NodeJs
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
python suds访问webservice服务实现
2020/06/26 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
Python如何获取文件路径/目录
2020/09/22 Python
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
乡镇计划生育工作汇报
2014/10/28 职场文书
大学生暑期实践报告
2015/07/13 职场文书
六年级作文之关于梦
2019/10/22 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB