本文介绍一种基于XMLHttpRequest和eval的旧式JavaScript动态加载脚本方法。通过封装load_script函数,利用ActiveXObject获取脚本内容并执行,适用于特定浏览器环境。文章提供了完整的JavaScript对象定义及HTML页面调用示例,展示了如何加载jQuery等外部脚本。
动态加载脚本的实现原理
在Web开发中,若需动态引入JavaScript文件,可采用以下技术方案。
具体实现代码如下:
var docFunc = {
/***************************************************************************
/* 目的:调用下方的动态加载脚本方法load_script */
**************************************************************************/
loaddefJquery : function() {
// alert(ucapSession.hostPath + ucapSession.appPath);
// ucapSession.appPath表示根目录路径
docFunc.load_script(ucapSession.appPath
+ "ftdxxglxt/js/jquery-1.8.1.min.js");
docFunc.load_script(ucapSession.appPath
+ "ftdxxglxt/js/jSuggest.js");
},
/***************************************************************************
/* 目的:动态加载脚本 */
**************************************************************************/
load_script:function(url){
var x = new ActiveXObject("Msxml2.XMLHTTP");
x.open('GET', url, false);
x.send('');
eval(x.responseText);
var s = x.responseText.split(/\n/);
var r = /^(?:function|var)\s*([a-zA-Z_]+)/i;
for (var i = 0; i < s.length; i++)
{
var m = r.exec(s[i]);
if (m != null)
{
window[m[1]] = eval(m[1]);
}
}
}
} 页面调用示例
在HTML页面或JSP页面中调用该方法:
代码如下:
<script>
docFunc.loaddefJquery();
</script>