0

jQuery .load()を使用して、読み込まれた画像のバイトコードを受信して​​います。

それは...ですか

  1. MIMEType が指定されていないためですか?
  2. ファイル拡張子のない画像の URL を使用しているためですか?
  3. どういうわけか全体をラップする必要があるからですか?

以下にコード例を示します。

HTML

  <div class="slide" data-img-src="http://lorempixel.com/200/100/technics/">
    <div class="slide-content">
      <h1>Heading 1</h1>
      <p>Just some random text for demonstration purposes.</p>
    </div>
  </div>

  <div class="slide" data-img-src="http://lorempixel.com/200/100/nature/">
    <div class="slide-content">
      <h1>Heading 1</h1>
      <p>Just some random text for demonstration purposes.</p>
    </div>
  </div>

Javascript

var ajax_load = "<img src='img/load.gif' alt='loading...' />";

$(".slide").each(function(index, el) {
    var img_src = $(this).attr('data-img-src');

    $(this).prepend(ajax_load);
    $(this).load(img_src, null, function() {
        console.log(img_src + " loaded");
    });
});

そしてフィドルhttp://jsfiddle.net/BCLJE/

4

2 に答える 2

2

取得しようとしているデータまたは HTML フラグメントが同じドメインにあることを確認する必要があります。同一オリジンポリシーにより

http://en.wikipedia.org/wiki/Same_origin_policy

ブラウザーのセキュリティ制限により、ほとんどの "Ajax" 要求は同一オリジン ポリシーの対象となります。要求は、別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。

load() API 短縮形メソッドの追加メモの下にあります。

http://api.jquery.com/load/

于 2013-10-25T14:43:26.430 に答える
1

これは、テキストのみを受け入れるフィールドに画像 (AJAX 経由で読み込まれたもの) のコンテンツを設定しようとした場合に起こると予想されることです。これらの要素の内容を画像自体に置き換えたい場合<img>は、正しいsrc属性を持つ要素を作成します。

var $img = $('<img/>', {src: img_src}).load(function(e) {
    // do something when the image has actually loaded?
});
$(this).empty().append($img);

jsFiddle デモ

于 2013-10-25T14:54:18.973 に答える