我有像
这样的代码$(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毫秒的函数..
答案 0 :(得分:3)
一般来说,这一问题的可疑性(我将留下评论)。如果我理解您的要求,可以执行以下操作以避免重复setInterval
和if
中的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);
});