无法执行onLoad事件

时间:2013-04-15 12:23:11

标签: mootools

我在函数中使用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没有执行,我不知道为什么。我认为这是因为我的功能执行了十二次,但我没有如何解决这个问题。

非常感谢。

1 个答案:

答案 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。我很确定如果文件在缓存中,或者下载速度非常快,那么只需在设置事件处理程序之前加载它。

相关问题