2012-03-27 49 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 2012-03-27 22:56:36

+0

是的,这个技巧(在img标签中带有onerror的纯JS版本)。 – Steely1 2012-03-28 15:14:32

0

而不是等待404,然后再请求的默认图像,可以让服务器返回默认图像?你会来救的请求,并简化客户端

+0

对于这个特定的应用程序,在服务器中没有“智能” - 目前我有一个开发Apache,但最终应用程序需要完全从浏览器中的文件系统运行。 – Steely1 2012-03-27 22:55:57