Article View: pl.comp.lang.javascript
Article #51291Jak sprawdzić czy plik graficzny istnieje (JS+jquery)
From: Latet
Date: Sat, 20 Apr 2013 11:14
Date: Sat, 20 Apr 2013 11:14
37 lines
2416 bytes
2416 bytes
Witam,
Testuję sobie taki sprytny skrypcik znaleziony w sieci, który w przypadku
rozpoznania iPada z wyświetlaczem retina podmienia wszystkie obrazki na stronie
na wersje w wyższej rozdzielczości (o ile są na serwerze i mają nazwę zgodną ze
schematem: obraznormalny.jpg --> obraznormalnyretina.jpg).
Problem tylko w tym, że jeśli takowego pliku (z dopiskiem "retina" w nazwie) nie
ma, to nazwa źródła obrazka nadal jest zmieniana, co się kończy brakiem obrazka
na ekranie i wyświetleniem w tym miejscu tekstu z tagu ALT.
Jak zmienić poniższy skrypt, aby robił to co robi TYLKO pod warunkiem, że plik
hi-res o oczekwianej nazwie faktycznie istnieje, a w przeciwnym wypadku
pozostawiał taki obrazek, jaki był pierwotnie w spokoju?
<script type="text/javascript">
$(document).ready(function()
{
var pixelRatio = window.devicePixelRatio ? window.devicePixelRatio : 1;
images = document.getElementsByTagName("img"),
num = images.length;
if (navigator.userAgent.indexOf('iPad') >= 0 && pixelRatio >= 2 )
{
for(i=0;i<=num-1;i++)
{
var temp = images[i].attributes['src'].value,
src = temp.substr(0,temp.lastIndexOf('.')) + 'retina' +
temp.substr(temp.lastIndexOf('.'));
images[i].src = src;
}
}
});
</script>
Dziękuję,
latet
Technical Details
Message-ID:
<51727890$0$1220$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!feeder.erje.net!us.feeder.erje.net!news.glorb.com!news-out.readnews.com!transit4.readnews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!feeder.erje.net!us.feeder.erje.net!news.glorb.com!news-out.readnews.com!transit4.readnews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: "Latet" <latet@latet.pl> Newsgroups: pl.comp.lang.javascript Subject: Jak sprawdzić czy plik graficzny istnieje (JS+jquery) Date: Sat, 20 Apr 2013 13:14:17 +0200 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Lines: 38 Message-ID: <51727890$0$1220$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 088156241134.warszawa.vectranet.pl X-Trace: 1366456464 unt-rea-b-01.news.neostrada.pl 1220 88.156.241.134:2435 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit