2012-03-27 6 views
2

Sencha Touch/Ext/JSの経験が豊富な方にはうってつけです。リモートリソース(イメージなど)の存在をプログラムでテストするにはどうすればよいですか?言い換えれば、HTTP 404が起きる前にそれを止めて、何らかのデフォルトアクションを実行するにはどうすればいいですか?たとえば、デフォルトイメージで交換しますか?ここでSencha Touchで欠落しているリソースをテストする

が、私は現在、(キャッチ(e)のブロックがヒットされることはありません)やってるものです:

albumArtArea.setTpl('<img class="cover_art" src="{iconUrl}"/>'); 
try { 
    albumArtArea.setData(itemData); 
} 
catch (e) { 
    // this block is never executed 
    // 404 for missing album art; use the generic image 
    itemData.iconUrl = "resources/images/img_music_generic.png"; 
    albumArtArea.setData(itemData); 
} 

答えて

0

あなたはエラーが積載gimageで発生し、その後

function ImgError(source){ 
    source.src = "resources/images/img_music_generic.png"; 
    source.onerror = ""; 
    return true; 
} 

<img src="someimage.png" onerror="ImgError(this);" /> 

か、usihgしている場合はjqueryの

$('img').one('error', function() { 
     this.src = 'resources/images/img_music_generic.png'; 
}); 
たときに、デフォルトの画像を表示するには、このような何かを行うことができます

参考:

jQuery/JavaScript to replace broken images

+0

私はできるだけ早くこれらの線に沿って何かを試し、それがどのようになっているかを教えてください。ありがとう。 – Steely1

+0

はい、それはトリック(imgタグ内にエラーがあるプレーンなJSバージョン)でした。 – Steely1

0

代わりに、その後404および再要求のデフォルトの画像を待たずに、あなたが聞かせすることができますサーバーはデフォルトイメージを返しますか?あなたは、クライアントのリクエストを保存しても簡素化したい

+0

この特定のアプリケーション用のサーバーには "スマート"はありません。私は開発用のApacheを持っていますが、最終的にはブラウザのファイルシステムから完全に実行する必要があります。 – Steely1

関連する問題