3

より明確にするために、私はそれを単純にしました(したがって、前のロードが完全に完了した後に iframe.attr() が呼び出されると仮定しましょう):

var iframe = $("iframe");
var counter = 0;
var trackLoads = function(){
   console.log("I was loaded:" + counter);
   counter += 1;
};

iframe.load(trackLoads);

iframe.attr("src","http://stackoverflow.com/");
iframe.attr("src","http://localhost:9081/mobile/api/content/badPath"); //returns 204 No Content
iframe.attr("src","http://stackoverflow.com/");

コンソール ログは次のようになります。

I was loaded:1
I was loaded:2

iframe が stackoverflow.com から新しいコンテンツをロードすると、コールバック「trackLoads」がトリガーされますが、何らかの理由で iframe が 204 No Content のコールバックをトリガーすることはありません。

iframeが「src」属性を変更した後に「204 No Content」を検出する方法は?

4

1 に答える 1

-2

以前のコードを次のように変更します。

var trackLoads = function(response, status, xhr){
   console.log("I was loaded:" + counter);
   counter += 1;
   if ( status == "error" && xhr.status == 204) {
      console.log( "Sorry but there was an error: " + xhr.status + " " + xhr.statusText );
   }
};

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

于 2014-10-01T10:33:46.827 に答える