铁匠

做人要低调
随笔 - 133, 评论 - 255 , 引用 - 184

导航

公告

文章分类

存档

随笔分类

相册

BLOG

网站

论坛

Opera的Onload竟然会执行多次

昨天测试的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事件会被触发多次.于是只好加上一个开关变量,判断如果被执行过了,就直接跳出.

发表于 2007年8月15日 13:59

评论

# re: Opera的Onload竟然会执行多次

我也用Opera哈!
2007-8-17 9:32 | Jewel

# re: Opera的Onload竟然会执行多次

偶是用,就是工作需要才用一下:)
2007-8-17 9:38 | 铁匠

# re: Opera的Onload竟然会执行多次

我也遇到了这种问题,如本地压缩包里的网页,直接不解压用opera打开,会同时打开两个页面,试过一些,好像只有运行了JAVASCIPT的页面会有这种现象.
有时网页图片不显示,只有图像两个字,但我在浏览器选项里把显示图片勾上了,不知道这个问题是不是你说的...
2007-8-30 13:52 | soso

# re: Opera的Onload竟然会执行多次

soso:我也感觉很晕,不过我感觉是不是和页面里动态加载的图片个数有关.
2007-8-31 10:00 | 铁匠

Post Comment

主题  
姓名  
主页
校验码  
内容   
京ICP备 05050892号