1.使用AJax技术动态加载JS文件
function ajaxRequest(filename)
{
try{
ajaxreq = new XMLHttpRequest();
// alert("rigth");
}catch(error)
{
try{
ajaxreq = new ActiveXObject("Microsoft.XMLHTTP");
}catch(error)
{
alert("error");
return false;
}
}
ajaxreq.open("GET",filename);
ajaxreq.onreadystatechange = ajaxResponse;
ajaxreq.send(null);
}
function ajaxResponse()
{
if(ajaxreq.readyState !=4)
{
//alert("!=4");
return;
}
if(ajaxreq.status == 0) //如果读取本地JS文件,ajax没有发送http请求,返回的status == 0时代表请求完成。
{
IncludeJS("GPS","js/GPS.js", ajaxreq.responseText);
}
else
{
alert("Request failed:"+ ajaxreq.status);
}
return true;
}
function IncludeJS(sid,fileUrl, source)
{
var element = document.getElementById(sid);
var head = document.getElementsByTagName('head').item(0);
if(element)
{
head.removeChild(element);
}
if (( source != null )){
var oHead = document.getElementsByTagName('head').item(0);
var oScript = document.createElement( "script" );
oScript.language = "javascript";
oScript.type = "text/javascript";
oScript.id = sid;
oScript.defer = true;
oScript.text = source;
//alert("oScript.text:" + oScript.text);
oHead.appendChild( oScript );
}
}
2. 动态加载script标记
function LoadJS()
{
var id = "Route";
var script = document.createElement("script");
script.id = id;
script.type = "text/javascript";
script.src = "http://domain/SmartLib/TestServlet";
if (callback)
{
script.onload = script.onreadystatechange = function()
{
script.onreadystatechange = script.onload = null;
callback();
};
}
var head = document.getElementsByTagName('head').item(0);
head.appendChild (script);
}
function callback()
{
//解析返回的数据
}
注: 在IE下,readyState的值可能为一下几个:
"uninitialized"--原始状态
"loading" -- 下载数据中
"loaded" -- 下载完成
"interactive"-- 还未执行完毕
"complete" --脚本执行完毕
在IE中可以通过script.onreadystatechange = function(){}捕获状态的变化,在function中,通过script.readyState的状态来做相应的处理。
但是,在Firefox中,则没有script.readyState属性,一般通过script.onload = function(){}来动态加载script.
分享到:
相关推荐
一个js文件,实现动态加载js文件。在用extjs时,为了避免一次全部加载js文件而写的。
这是动态加载外部JS文件,很不错的例子哦!
vue动态加载JavaScript:动态的创建Script元素,然后通过更改它的 src 属性来加载脚本,脚本文件加载完成后,在脚本加载完成生效后才能执行回调函数。
本文档把js加载做成vue组件,便于在其他模块引用,符合vue整体思路,供大家参考借鉴
Ext4 动态加载js例子 Ext4 动态加载js例子 Ext4 动态加载js例子 Ext4 动态加载js例子
动态创建iframe,并动态添加js代码动态创建iframe,并动态添加js代码
动态加载js文件,让js文件实现用不到绝不加载的功能!
今天在研究,tinymce富文本编辑器怎样在vue中使用,然后看到其它框架上的使用方法,它是动态加载tinymce脚本的,若果在本地引入静态文件或者,npm安装都会导致vue项目打包体积过大,这种动态脚本引入方式,是一个...
动态加载JS脚本的动态加载JS脚本的动态加载JS动态加载JS脚本的4种方法.doc方法.doc
javascript、css动态加载工具
asp.net动态加载JavaScript树
自己写的JS动态加载库,打包的是一个完整demo。仅3个API。希望对大家有帮助,欢迎拍砖
可以通过extjs3进行动态加载js,也可以直接通过原生js进行调用 拥有extjs4的动态加载功能, 可以同时加载多个js文件, 同时加载过的文件不会重复加载
JS EasyUI DataGrid动态加载数据
javascript实现城市三级联动,js前端显示,动态加载数据
js动态加载
1、动态加载js,css文件(用原生js和jquery) iframe结构: frame0(父) frame2(子) frame3(子) frame2中触发事件,动态的向frame3中 加载js、css文件和 dom元素? *同级之间可以调用,可以 通过 子-父-子 的方式...
【JavaScript】vue动态加载JavaScript 高级JavaScript组件 【实例简介】vue动态加载JavaScript 【JavaScript】vue动态加载JavaScript 高级JavaScript组件
基于javascript(jQuery)的动态改变网站样式,按F5刷新之后也可以保存选择的样式的结果(基于 Cookie)。
动态加载JS文件和CSS文件,多浏览器支持。多个JS文件同时加载,加载完成后执行回调方法。 使用方法: var loader=new RemoteLoader(); loader.loadFiles(["yy.js","jj.jus"],作用域);