匿名函数在Internet Explorer中不起作用

时间:2012-02-24 12:30:13

标签: javascript

我正在使用以下代码段以非阻塞方式异步加载javascript。它适用于Chrome,FF但无法在Internet Explorer中运行。

我正在运行IE8并且无法在IE中点击以下代码的onload函数;

          <script type="text/javascript">
            (function () {
                var s = document.createElement('script');
                s.type = 'text/javascript';
                s.async = true;
                s.src = 'js/load_outer.js';
                s.onload = function () {
                    alert("Loaded");
                }

                var x = document.getElementsByTagName('script')[0];
                x.parentNode.insertBefore(s, x);
            })();
        </script>

有人可以帮我识别错误吗?

由于

1 个答案:

答案 0 :(得分:2)

IE(早于9)不支持onload元素的<script>事件,而是使用onreadystatechange

var complete = false;
script.onload = script.onreadystatechange = function() {
    if (!complete && (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete')) {
        complete = true;
        // your callback code here
    }
}