-
22 Mar 2012 6:43 AM #1
Answered: how to test for missing resource
Answered: how to test for missing resource
Hi all,
Here's a hopefully quick one for those with more Sencha Touch / Ext experience than I have. How would I programmatically test for the existence of a remote resource, say an image? In other words how do I forestall an HTTP 404 before it happens and perform some default action, say swapping in a default image?
Thanks in advance,
Garrett
-
Best Answer Posted by garrettweinberg
I ended up fixing this using plain HTML/JS, but would appreciate knowing about a more Ext-ish way to handle this. The idea is to use the onerror attribute of the <img> element to default to your fall-back image. It works fine with tpl's rather than hard-coded html.
Code:function ImgError(source): { source.src = "resources/images/img_music_generic.png"; source.onerror = ""; return true; } <img src="someimage.png" onerror="ImgError(this);" />
-
22 Mar 2012 11:19 AM #2Sencha - Senior Forum Manager
- Join Date
- Mar 2007
- Location
- St. Louis, MO
- Posts
- 33,599
- Vote Rating
- 434
- Answers
- 3102
<img> tag will fire an error event and Ext.Img listens to that and fires an error event on the component if you use Ext.Img.
Mitchell Simoens @SenchaMitch
Sencha Inc, Senior Forum Manager
________________
http://www.JSONPLint.com - Source to lint your JSONP!
Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
https://github.com/mitchellsimoens
Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/
Need more help with your app? Hire Sencha Services services@sencha.com
Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is almost in print!
When posting code, please use BBCode's CODE tags.
-
23 Mar 2012 10:44 AM #3
not using Img
not using Img
Thanks, Mitchell. Two things. Rather than Ext.Img, I'm using a plain Ext.Component with an <image> tag in its tpl. I assume that doesn't matter. Secondly, where would I catch this error? Will it be thrown when I invoke setData() on the component?
-
23 Mar 2012 12:09 PM #4
The 404 happens during setData() according to my stack trace, but no exception is thrown.
-
27 Mar 2012 5:01 AM #5
Hello? Mitchell?...Anyone? I cannot catch a 404 during Component.setData() by the normal try{} catch{} means.
-
28 Mar 2012 7:53 AM #6
fixed using "plain" JS
fixed using "plain" JS
I ended up fixing this using plain HTML/JS, but would appreciate knowing about a more Ext-ish way to handle this. The idea is to use the onerror attribute of the <img> element to default to your fall-back image. It works fine with tpl's rather than hard-coded html.
Code:function ImgError(source): { source.src = "resources/images/img_music_generic.png"; source.onerror = ""; return true; } <img src="someimage.png" onerror="ImgError(this);" />


Reply With Quote