代码之家  ›  专栏  ›  技术社区  ›  sheats

图像显示,然后消失在Safari中

  •  0
  • sheats  · 技术社区  · 17 年前

    所以这真的很奇怪。如果你去 http://floridahome.palmbeachpost.com/ 在Safari和搜索列表中,您将看到我们的图像未被找到,并在结果中找到真正应该出现的图像。如果你看不到我在第一页上所说的,请点击几页。如果在火狐或IE中进行相同的搜索,图像就会显示出来。

    奇怪的是,它看起来像图像加载了一瞬间,然后消失了。OnerRor事件被抛出,这就是为什么我们要显示占位符图像。

    如果有人能对此有所了解,我将永远感激。

    (我知道我们的消息来源无法验证,我明天第一件事就是要解决这个问题)

    1 回复  |  直到 17 年前
        1
  •  2
  •   Nate    17 年前

    YAHOO.backyardpost.init() 这就是:

    var imgs = document.images;
    for (var i = 0; i < imgs.length; i++) {
        if ((!imgs[i].complete || 
            imgs[i].naturalHeight == 0 || 
            imgs[i].naturalWidth == 0) && 
            imgs[i].src.match(/services\.palmbeachpost/i)) 
        {
            imgs[i].src = '/static/img/gfx/img_not_available.jpg';
        }
    }
    

    什么时候调用它,您确定图像在调用时已完全加载?

    我不能在这一行设置一个断点,但我会怀疑其中一个条件 imgs[i].complete 不是 true 并导致图像被替换。

    有传闻证据[ 1 ][ 2 ]那个 complete 属性在Safari中并不总是有效。