jquery append一个js文件,如何在载入完成执行回调?
$('body').append('<script src="xxx.js"></script><script src="yyy.js"></script>');
这样子载入一个js,有没有办法在载入完成时执行一个回调函数。
jquery Ajax callback JavaScript
宁静的哈哈哈
10 years, 3 months ago
Answers
function loadScript(url, callback) {
var script = document.createElement("script");
script.type = "text/javascript";
// IE
if (script.readyState) {
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
callback();
}
};
} else { // others
script.onload = function () {
callback();
};
}
script.src = url;
document.body.appendChild(script);
}
使用:
loadScript("http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js", function () {
alert('loaded');
});
JSFiddle例子:
http://jsfiddle.net/starandtina/L3QaM/
cao1118
answered 10 years, 3 months ago
试了这样
$('body').on('load', function(){
alert('xx');
}).append('<script src="xxx.js"></script><script src="yyy.js"></script>');
不行。。。
这样子可以。。。
var $jsArr = $('<script src="xxx.js"></script><script src="yyy.js"></script>');
var len = $jsArr.length-1;
$jsArr.each(function(i) {
$.getScript(this.src, function(){
if (len===i) {
alert('xxx');
}
});
});
不知道 有没有更好的方法
谷歌搜索颜白虎
answered 10 years, 3 months ago