script 标签的onload事件

十一 9th, 2009

下午解决个页面异步加载触发的问题记录如下。

需求:页面需要从js文件加载完数据后触发显示数据的函数。
Google之得解。

贴码如下:

[code lang="js"]
var url = "http://host_name/example.js";
var script = document.createElement("script");
script.type= "text/javascript";
script.language="javascript";
script.src=url;
if(script.addEventListener){
script.addEventListener("load", callback, false);
}else if(script.attachEvent){
script.attachEvent("onreadystatechange", function(){var target = window.event.srcElement; if(target.readyState == "loaded") callback.call(target);});
}
document.getElementsByTagName("head")[0].appendChild(script);

function callback()
{
//TODO Show Data
}
[/code]

备注: onreadystatechange 事件有两次触发一次是loading事件一次是loaded事件,loading事件应用无关,加判断区分之。

再Google之已经有老外做了个loadScript库解决类似问题地址如下:
http://design-noir.de/webdev/JS/loadScript/

目前还没有任何评论.