我在函数中使用OnLoad事件时遇到问题:
(function () {
var ds = document.createElement('script');
ds.type = 'text/javascript';
ds.async = true;
ds.src = 'http://' + ds_shortname + '.myscript.com/emb.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds);
ds.onLoad = function(){
alert('ok');
var ds_div = $('ds-div');
if (IsConnected())
{
alert('connect');
}else{
alert('not connect');
}
}
})();
实际上我的ds.onLoad
没有执行,我不知道为什么。我认为这是因为我的功能执行了十二次,但我没有如何解决这个问题。
非常感谢。
答案 0 :(得分:2)
使用更多来自更多的Utilities/Asset类,例如:
new Asset.javascript('//connect.facebook.net/en_US/all.js', {
onLoad:function(){
$('message').set('text', 'Facebook loaded!');
},
async: true
});
工作样本:http://jsfiddle.net/FU5rk/
与您的问题直接相关:在应用onLoad事件之前将元素注入DOM。我很确定如果文件在缓存中,或者下载速度非常快,那么只需在设置事件处理程序之前加载它。