| | |
|–|--|
| | |
jQuery.getScript() 函数用于通过 HTTP GET 加载 JavaScript 文件并运行它。
该函数用于动态加载JS文件,并在全局作用域下执行文件中的JS代码。
该函数可以加载跨域的JS文件。 请注意,此函数通过异步方法加载数据。
该函数属于全局 jQuery 对象。
语法
这个静态函数是在 jQuery 1.0 中添加的。
复制
JavaScript:
jQuery。 getScript( url [, 成功 ] )
范围
参数说明
url String类型指定请求的目标URL。
success 可选/函数类型 请求成功时执行的回调函数。 它有3个参数:一是请求返回的数据jquery $.定义函数,二是请求状态文本(如“成功”,“未修改”),三是当前的jqXHR对象(jQuery 1.4及之前的版本,这个参数是本机 XMLHttpRequest 对象)。
参数success指定的回调函数只有在请求成功时才会被执行。 如果请求失败(如找不到页面、服务器错误等),则不会进行任何处理。
返回值
jQuery.getScript()函数的返回值是jqXHR类型,返回发送请求的jqXHR对象(jQuery 1.4及更早版本返回原生XMLHttpRequest对象)。
示例和描述
jQuery.getScript() 是 jQuery.ajax() 函数的缩写,如下所示:
复制
JavaScript:
jQuery。 getScript(url, 成功);
// 相当于
$.ajax({
网址: 网址,
类型:“获取”,
成功:成功,
数据类型:“脚本”
});
下面是与 jQuery.getScript() 函数相关的 jQuery 示例代码,演示 jQuery.getScript() 函数的具体用法:
复制
JavaScript:
// 加载并执行js文件:
$.getScript("");
// 加载并执行js文件:js.php?f=kissy,util,ui&version=1.3
$.getScript(“js.php?f=kissy,util,ui&version=1.3”);
//加载并执行js文件:
// 成功后执行回调函数
$.getScript("", 函数(数据, textStatus, jqXHR){
// data是请求返回的数据(可能是处理过的)
// textStatus 可以是“成功”、“未修改”等。
// jqXHR是jQuery封装的XMLHttpRequest对象(保留其所有属性和技术)
alert( "加载成功" );
// 这里假设加载的js文件中定义了函数renderUI(),这里即可执行
renderUI();
} );
注意:如果多次加载相同URL的js文件,即使服务器启用了js文件的缓存jquery $.定义函数,第二次及以后加载js文件时,jQuery.getScript()仍然不会被缓存。 因为该函数会在js文件的URL前面添加时间戳参数后缀,从而阻止浏览器获取缓存的js文件。
复制
JavaScript:
// 加载并执行js文件:
$.getScript("");
// 第二次加载并执行js文件:
$.getScript("");
getScript() 会添加时间戳,防止js缓存
另外,请注意不要在执行 jQuery.getScript() 后直接调用 js 文件中的变量或函数,因为 jQuery.getScript() 是异步加载的。 当你访问变量或函数时,可能是js文件还没有完全加载。 建议您在success回调函数中进行处理,或者可以确认此时js文件已经加载完毕。
复制
JavaScript:
// 加载并执行js文件:
$.getScript("");
// 假设上面加载的js中存在函数utilExec()
// 调用utilExec()函数
// 注意:请不要使用这个,因为 $.getScript 是异步加载的。 当你执行utilExec()时,js文件可能还没有加载
// utilExec();