首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript回调函数加载IE8 - jQuery问题

使用javascript回调函数加载IE8 - jQuery问题
EN

Stack Overflow用户
提问于 2013-02-28 06:19:14
回答 1查看 988关注 0票数 1

我正在使用jQuery动态加载JavaScript。对于加载jQuery,定义了回调函数,并在其回调函数调用中执行一些jQuery内容。

在火狐、chrome和IE9中工作得很好,就像预期的那样,但是在IE8中给出了类似于的错误消息“$是未定义的”意味着在IE8中执行回调函数存在问题。我花了一整天的时间来找出解决办法,但没有得到任何办法。

代码语言:javascript
复制
<body>    
<script language="javascript" type="text/javascript">
    function loadjQuery(callback) {
        var ver = getInternetExplorerVersion();

        var body = document.getElementsByTagName('body')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        if (ver == 8.0) {
            script.onload = callback.call();
        }
        else {
            script.onload = callback;
        }
        script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
        body.appendChild(script);
    }
    loadjQuery(function () {
        alert($(window).height());       
    });

    function getInternetExplorerVersion() {
        var rv = -1;
        if (navigator.appName == 'Microsoft Internet Explorer') {
            var ua = navigator.userAgent;
            var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
            if (re.exec(ua) != null)
                rv = parseFloat(RegExp.$1);
        }
        return rv;
    }
    </script>
</body>

我完全被困住了。有什么能帮上忙的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-28 06:22:38

我以前也对这个函数进行了编码,下面的代码似乎运行得很好:

代码语言:javascript
复制
            // Attach handlers for all browsers
            script.onload = script.onreadystatechange = function() {

                if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
                    done = true;                        
                    // callback function provided as param
                    if(success != null)
                    {
                        success();
                    }
                    script.onload = script.onreadystatechange = null;
                    //head.removeChild(script);                     
                };              
            };     
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15128798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档