Firefox似乎忽略了我程序中的一些JavaScript代码。下面的代码用于更改元素#navi li a的背景位置,您看到的for循环是更改图像和文本的计时器的一部分;以及#navi(这是一个精灵)的背景位置。当你达到条件if(j === count)时会出现问题。 Firefox识别初始backgroundPosition属性并将精灵设置为-12像素,但该元素不再处于活动状态。为了更好地了解发生的情况,精灵是两个圆圈的11 x 24像素,0 0处的圆圈是黄色或活动的,0-12的圆圈是白色或非活动的。当计时器运行时,Firefox会将所有圆圈更改为黄色,但当它们不再处于活动状态时,不会将它们重置为白色。 IE6和Safari的代码按预期工作,Firefox是目前唯一有此问题的浏览器。
for (j=1;j<4;j++){
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
var ieversion=new Number(RegExp.$1)
if (ieversion>=6){
document.getElementById("navi"+j).style.backgroundPosition = "0 -12";
document.getElementById("image_description"+j).style.visibility = "hidden";
}
} else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
var ffversion=new Number(RegExp.$1)
if (ffversion>=3){
document.getElementById("navi"+j).style.backgroundPosition = "0 -12";
document.getElementById("image_description"+j).style.visibility = "hidden";
}
} else { //Safari
document.getElementById("navi"+j).style.backgroundPosition = "bottom bottom";
document.getElementById("image_description"+j).style.visibility = "hidden";
}
if (j===count){
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
var ieversion=new Number(RegExp.$1)
if (ieversion>=6){
document.getElementById("navi"+j).style.backgroundPosition = "0 0";
document.getElementById("image_description"+j).style.visibility = "visible";
}
} else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
var ffversion=new Number(RegExp.$1)
if (ffversion>=3){
document.getElementById("navi"+j).style.backgroundPosition = "0 0";
document.getElementById("image_description"+j).style.visibility = "visible";
}
} else { //Safari
document.getElementById("navi"+j).style.backgroundPosition = "top top";
document.getElementById("image_description"+j).style.visibility = "visible";
}
}
}
答案 0 :(得分:1)