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 相关文章推荐
纯js实现的论坛常用的运行代码的效果
Jul 15 Javascript
node.js require() 源码解读
Dec 13 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
js实现动态创建的元素绑定事件
Jul 19 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
Oct 05 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
JavaScript实现同一个页面打开多张图片
Dec 29 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
Jun 08 Javascript
Seajs源码详解分析
Apr 02 Javascript
Antd中单个DatePicker限定时间输入范围操作
Oct 29 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 session_start()问题解疑(详细介绍)
2013/07/05 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
php简单中奖算法(实例)
2017/08/15 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
电子商务网站的创业计划书
2014/01/05 职场文书
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
主办会计岗位职责
2014/03/13 职场文书
产品包装策划方案
2014/05/18 职场文书
工地食品安全责任书
2015/05/09 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
话题作文之学会尊重
2019/12/16 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
MySQL常见优化方案汇总
2022/01/18 MySQL