如果IE fork执行定时功能

时间:2013-04-30 21:17:18

标签: javascript jquery time

我有像

这样的代码
$(document).ready(function(){
    $(function () {
        window.setTimeout(function () {
            if( getInternetExplorerVersion() != -1){
                //do not friendly IE stuff
                            ie_browsers();          
            }else{
                other_browsers();
            }

                        setInterval(other_browsers, 32000);
        }, 800);
    });
   ...

检测IE浏览器

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;
    }

我的问题是我必须在哪里发出指令setInterval(other_browsers, 32000);

我必须把它放在else语句和其他ie_browsers();内吗?

目的是每隔32秒执行一次延迟800毫秒的函数..

1 个答案:

答案 0 :(得分:3)

一般来说,这一问题的可疑性(我将留下评论)。如果我理解您的要求,可以执行以下操作以避免重复setIntervalif中的else

$(function () {
    window.setTimeout(function () {
        var func;
        if( getInternetExplorerVersion() != -1){
            //do not friendly IE stuff
            func = ie_browsers;
        }else{
            func = other_browsers;
        }

        // call once now
        func();

        // call repeatedly on an interval
        setInterval(func, 32000);
    }, 800);
});