1

私はlightboxと呼ばれるJQueryプラグインを使用しています(これは素晴らしいことです)。問題は、外部サイトの画像にアクセスしていて、ライトボックスによる画像のプリロードをブロックしていると思うことです。

具体的には、picasaがプリローダーに404(firebugを使用)を提供することを確認しましたが、firebugの[ネット]タブで失敗したリクエストを右クリックすると、[新しいタブで開く]画像が正常に読み込まれます。

これは、picasaの画像で発生します。ただし、既に表示している場合を除きます(この場合、画像を再度読み込むのではなく、ブラウザのキャッシュから取得すると思います)。

ブラウザとプリローダー(これもfirebugから)によって送信されるヘッダーにはいくつかの違いがあります。

プリローダーの「Accept」ヘッダーは次のとおりです。

image/png,image/*;q=0.8,*/*;q=0.5

対ブラウザに直接画像をロードする:

text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

これは、リモートサーバーがブラウザのリクエストとJavaScriptを区別できる1つの方法だと思います。どう思いますか?

また、これがプラグインのプリローダーコードです...念のため

// Image preload process
var objImagePreloader = new Image();
objImagePreloader.onload = function() {
    $('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
    // Perfomance an effect in the image container resizing it
    _resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
    //  clear onLoad, IE behaves irratically with animated gifs otherwise
    objImagePreloader.onload=function(){};
};
objImagePreloader.src = settings.imageArray[settings.activeImage][0];

アップデート

どうやらpicasaは、DOMの一部であるか、JavaScriptを介してプリロードされているかにかかわらず、フルサイズの画像を表示することをまったく妨げているようです...これについてどうしたらよいかわかりません

4

2 に答える 2

1

JavaScript でロードする代わりに、プリロード IMG タグを非表示の DIV 内の DOM にいつでも追加できます。そうすれば、ブラウザはそれらを「自然に」ロードします。

于 2009-06-04T17:35:17.760 に答える
0

解決

Picasa では、外部サイトが幅 800 ピクセルまでの画像を読み込むことができます... 外部ドメイン (picasaweb.google.com ではない) でそれよりも大きな画像を使用しようとすると、404 が返されます。

幸いなことに、私には 800px で十分です...オリジナルを読み込もうとしていたところですが、これは許可されていません (笑)

于 2009-06-04T18:17:25.023 に答える