$(document).ready(function(){
$(window).load(function(){
$('#background_cycler').fadeIn(1500);//fade the background back in once all the images are loaded
// run every 7s
if(typeof window.chrome != "object") {
setInterval('cycleImages()', 60000);
} else {
setInterval('cycleImages()', 60000);
}
var urlvid = location.href.match(/vid/i);
if (urlvid) {
setInterval('cycleImages()', 70000000);
}
var browserName=navigator.appName; if (browserName=="Microsoft Internet Explorer") { setInterval('cycleImages()', 7000); }
此脚本应更改背景图像为不同浏览器切换的时间。我需要这个,因为Firefox和Chrome在后台更改图像时通常会滞后。 IE不会这样做。 这在观看视频时变得非常糟糕,因此我想在地址栏中检查/ vid /并将更改时间设置为(几乎)从不。问题是,它在Chrome和Firefox中的this link上每60秒仍会发生变化。 我在这里做错了什么想法?
答案 0 :(得分:1)
您设置两次间隔。您需要重新排序代码或清除prevoius间隔。每次调用setInterval
都会创建重复的计时器,调用你的函数。
var urlvid = location.href.match(/vid/i);
if (urlvid) {
setInterval(cycleImages, 70000000);
}else{
// run every 7s
if(typeof window.chrome != "object") {
setInterval(cycleImages, 60000);
} else {
setInterval(cycleImages, 60000);
}
}
更好的方法是将超时定义为变量,根据浏览器规则进行更改,然后使用它调用setInterval
。
var delay = 6000;
if(location.href.match(/vid/i)){
delay = 70000000;
}
setInterval(cycleImages, delay);