SORU
25 EKİM 2008, CUMARTESİ


Neden ayrıldınız <script> belge ile yazarken etiketi.(yaz)?

Neden bazı siteler (veya istemciler javascript kodu vermek reklamcılar) <script> ve/veya </script> document.write() çağrıları içinde etiketler bölme tekniği kullanır?

Amazon da bu, örneğin fark ettim:

<script type='text/javascript'>
  if (typeof window['jQuery'] == 'undefined') document.write('<scr' 'ipt type="text/javascript" src="http://z-ecx.images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.pack._V265113567_.js"></sc' 'ript>');
</script>

CEVAP
25 EKİM 2008, CUMARTESİ


</script> aksi <script></script> çevreleyen blok çok erken biteceğini, çünkü bozuk. Gerçekten bir komut dosyası bloğu gerekiyordu çünkü < /, arasında bölünmüş olmalıdır (SGML göre) terminated by any end-tag open (ETAGO) sequence (i.e. </):

STİL ve KOMUT dosyası öğeleri, veri modeli CDATA kullanıyor olsa da, bu unsurlar için, CDATA farklı kullanıcı ajanları tarafından ele alınması gerekir. İşaretleme ve varlıklar olarak ham metin olarak kabul ve uygulamaya geçirilmelidir. "</" (end-tag açık ayırıcı) elemanı içeriğinin sonuna sonlandırıcı olarak kabul edilir. karakter dizisinin ilk geçtiği Geçerli belgeler, bu eleman için bitiş etiketi.

Ancak uygulamada tarayıcıları </script> bir gerçek CDATA komut bloğu ayrıştırma yakın etiket end.

XHTML kod blokları için böyle özel bir işlem yok, içlerinde < (&) herhangi bir karakter herhangi bir diğer öğe gibi &escaped; olması gerekir. Ancak daha sonra eski okul HTML olarak XHTML ayrıştırma çalışan tarayıcı kafası karışık olacak. Geçici çözümler CDATA blokları içeren var, ama kolay değil. Ayrıştırıcı ya da tür üzerinde çalışan script script öğesi yazmanın daha iyi bir yolu olabilir:

<script type="text/javascript">
    document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>');
</script>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesome Toys TV

    Awesome Toys

    18 HAZİRAN 2014
  • Britec09

    Britec09

    4 Mart 2009
  • sebsebdouze

    sebsebdouze

    7 ŞUBAT 2008