昨天测试的MM发现网页在Opera表现都好,可是就是有一个图片没有显示出来,偶只好装了一下Opera,结果发现果真如此,而且有时候显示,有时候不显示,极其诡异.
今天查看了一下系统的Exception表,结果发现一堆的404错误,再看,地址,我晕,这不是要显示的图片吗?只是地址上多了好长的一个"_"号,同时显示浏览器的版本是Opera,于是打开代码来调试:
function InitNavBar()
{
var img;
if (!currentImg)
{
currentImg = "";
}
for (var i = 0; i < 4; i ++)
{
img = document.getElementById(navImages[i]);
if (navImages[i] == currentImg)
{
img.src = img.src.replace(".gif", "_.gif");
}
else
{
img.onmouseover = ImageMouseOver;
img.onmouseout = ImageMouseOut;
}
}
inited = true;
}
AddEvent(window, "load", InitNavBar);
经过Alert法调试,发现
img.src = img.src.replace(".gif", "_.gif");
这行被调用了十几二十次,难怪会生成那么长的地址.同时,再跟踪一下,竟然发现InitNavBar()这个方法被调了十几二十次,GOOGLE一下,也没有发现哪里说Opera的Onload事件会被触发多次.于是只好加上一个开关变量,判断如果被执行过了,就直接跳出.