🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #51291

Jak sprawdzić czy plik graficzny istnieje (JS+jquery)

#51291
From: Latet
Date: Sat, 20 Apr 2013 11:14
37 lines
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-mail

Show 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