Yanıtlar:
Bu, tarayıcıya bağlı olacaktır, çünkü spesifikasyonu uygulamaya böyle karar verirler, ancak burada hızlı bir testte:
Hayır, en azından Firefox, IE8 ve Chrome'da indirilmezler.
Bunu test etmenin kolay bir yolu:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.nonexistent {
background: url('index.php?foo');
}
</style>
</head>
<body>
<?php if(isset($_GET['foo'])) {
file_put_contents('test.txt', $_SERVER['HTTP_USER_AGENT']);
} ?>
</body>
</html>
Eğer test.txttarayıcının kullanıcı aracısı ile doldurulur, daha sonra görüntü indirilir. Testlerimin hiçbirinde durum böyle değildi.
Hızlı bir test bunu kanıtladı.
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css"><!--
.hasnothing{background-image:url(http://25.media.tumblr.com/tumblr_ky7aakqvH01qatluqo1_400.jpg);}
.hassomething{background-image:url(http://27.media.tumblr.com/tumblr_kxytwr7YzH1qajh4xo1_500.png);}
--></style>
</head><body>
<div class="hassomething"></div>
</body></html>
2. resim tumblr_kxytwr7YzH1qajh4xo1_500.pngindirildi, ancak diğeri indirilmedi. Bunun Chrome'da (Geliştirici araçları) ve Firefox'ta (Firebug) doğruluğu kanıtlanmıştır.
Firefox ve Chrome (Ubuntu 9.10), DOM'da uygulanmayan sınıflar / kimlikler için resim indirmez.
Bu platform, hem olabilir ve olsa, tarayıcı bağımlı.
Bazen, "kullanılmamış" ın tam olarak ne anlama geldiğine bağlıdır. Farklı tarayıcılar bunu farklı şekilde tanımlar. Örneğin, Firefox'ta <noscript>etikete uygulanan stiller "kullanılmamış" kabul edilir ve bu nedenle hiçbir resim indirilmez.
Krom 26 (muhtemelen hepsi değil tabii), does uygulandıkları takdirde indirme CSS görüntüleri <noscript>JS etkin olsa elemanı. (Bana neden olduğu hemen belli değil, belki de bu bir hata?).
O değil CSS görüntüleri elemanlara uygulanacak indirmek içinde<noscript> olsa da, eleman. (Bu elbette beklenen bir davranıştır).
CSS:
noscript { background-image: url('always.png') 0 0 repeat; }
noscript p ( background-image: url('nojsonly.png') 0 0 repeat; }
HTML:
<noscript>The CSS background image of this NOSCRIPT-element will always be downloaded in Chrome. Will not be downloaded in Firefox</noscript>
<noscript><p>The CSS background image of this P-element won't be downloaded in Chrome or other browsers, unless JS is disabled</p></noscript>
Bu durumda, kullanıcının JS özelliği varsa, hem always.png hem de otherbg.png Chrome'a indirilir. Yok kullanıcı ise değil JS sahip etkin, daha sonra sadece nojsonly.png Chrome'da indirilir.
Google Analytics burada başarısız olacağından, JS özellikli olmayan kullanıcıların trafik düzeylerini ölçmek için bu tekniği kullanıyorum. Normal bir <img...>etiket yerine arka plan CSS görüntüsünü kullanmayı tercih ediyorum , çünkü botların bir CSS görüntüsünü yakalama olasılığının bir görüntüye göre daha düşük olduğu <img...>ve ziyaretçiler için daha doğru sayımlar bıraktığı (denenmemiş) teorisi altında çalışıyorum .
İlginç bir şekilde, Chrome (en azından) aşağıdaki örnekte unused.png'yi indirecektir:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>test</title>
<style type="text/css">
.unused {
background: url(unused.png) no-repeat;
}
.used {
background: url(used.png);
}
</style>
</head>
<body>
<div class="unused used">
hello world
</div>
</body>
</html>