2011-08-22 23 views
10

Birisi, html5shim komut dosyasının başlangıç ​​ve bitişinin nasıl çalıştığını açıklayabilir mi?javascript:/* @ @ */ne demektir?

senaryo /*@ ile başlayıp böyle @*/ biter:

/*@cc_on(function(a,b){function ........ (this,document);@*/ 

yapıyor /*@ @*/ nedir?

/* */dizisinin aralarındaki tüm satırları yorumlamasını beklerim, ancak komut dosyası yürütüldüğünden, buradaki durum böyle olamaz? Kafam karıştı.

bulunabilir:

http://html5shim.googlecode.com/svn/trunk/html5.js

cevap

14

IE JScript 'koşullu derleme', özel bir tarayıcı gizleme bir hile destekler yorumlarda özel bilgiler. Buradaki fikir, /*@[email protected]*/'un, bu yeni sözdizimi düzeyi özelliğini tanıtmak için yeniden tasarlamanın sıra dışı bir karakter dizisidir.

html5shiv, çoğu tarayıcıda çalıştırmaya bile çalışmayan bir kod parçası oluşturmak için kullanır (sizin yaptığınız gibi, her şeyi bir övgü olarak yorumlayacaktır), ancak IE için özel bir anlamı vardır.

MS doc here. Başka bir JS motoru bunu desteklemiyor. Tipik olarak, daha açık davranış koklama kodu tercih edebilirsiniz, ancak eğer gerçekten kendisini koklamaya neden olmayan bir IE özelliğini tespit etmeniz gerekiyorsa, kullanışlı olabilir.

+1

"Başka bir JS motoru bunu desteklemiyor" ... konu bu değil mi? ;) – Artfunkel

+1

@Artfunkel: Diğer tarayıcılar başka tarayıcı uzantıları seçtiler, bu yüzden başka birinin CC'nin bazı özelliklerini uygulayabileceği ihtimalinin dışında kalmayın. Muhtemelen iyi bir fikir değil, şimdi herkes sadece IE'yi tespit etmek için kullanıyor. – bobince

İlgili konular