0

我在预加载图像时遇到了一些问题,并在加载图像时进行了设置。我使用 onLoad(或 jQuery $("img").load()-thingy) 事件来检测图像何时加载。这在大多数浏览器中都可以正常工作,当我在 iPad/iPhone 上尝试时除外。不知何故,它只是抛出了 onError 事件(它没有描述错误是什么!)。但是当我在我的 onError 事件中重定向到图像时,它显示得很好。非常奇怪,似乎无法弄清楚是什么原因造成的。

一些代码:

if( !limg ) {
    var load = function($img) {
        setTimeout(function() {
            var src = $img.attr("src");
            video.trigger(filmLoad, [s]);
            if (((src.indexOf(url) >= 0 && urlIsString) || !urlIsString) 
                && src.indexOf("_low.") >= 0)
            {
                $img.attr(
                    "src", 
                    urlIsString 
                        ? url.replace("_low.", "_high.") 
                        : set.film.url.high);
                still = stillIsString 
                    ? still.replace("_low.", "_high.") : set.film.still.high;
            }
        }, 0);
    };

    limg = s.loaderimg = $("<img>")
        .appendTo(video)
        .css({opacity: 0, position: "absolute", left: "-200em"})
        .load(function(e) { load($(this)); })
        .error(function(e) { if(e.target.complete) { load($(this)); } })
        .src("src/to/my/image.jpg");
}
4

2 回答 2

1

嗨,只是为了回答我自己的问题:

我发现 iPad 对下载的图片大小有限制,而且由于我的图片非常大(尺寸方面),它根本没有下载它们。这些图像实际上是小胶片,高度超过 14000 像素,宽度约为 600 像素。所以 iPad 在加载它们然后跳过下载时抛出了错误。我试图使图像更方,使图像不那么高,但仍然抛出错误。解决方案是将图像分成更小的块,因为我发现 iPad 允许尺寸约为 600x6000 像素的图像。因此,我将幻灯片拆分为尺寸约为 600x4500 像素的较小图像,效果非常好。

总而言之:如果 iPad 拒绝下载图像,它可能太大了,无论是字节还是尺寸。

于 2011-06-25T15:06:29.017 回答
1

如果您使用的是.manifest文件,则需要将图像的 url 放入其中。

于 2011-06-23T15:00:14.227 回答