2012-05-22 5 views
5

kaçan JavaScript ile kaçan karakterleri hakkında yardım edebileceğinizi umuyordum bir sorum var. Aşağıdaki JavaScript kodu varsa ki: Yukarıdaki örnekte ŞimdiJavaScript tek ve çift tırnak işaretleri

document.write("<img src=\"http://www.google.com\" />"); 

, ne başladığını görebilirsiniz çift tırnak " ile document.write dolayısıyla ben emin olmak için < img src="" /> içinde tırnak kaçmak için neden ihtiyaç o JavaScript hala bir ip olduğunu düşünüyor.

Ancak aşağıdaki örnekte,bildirimini başlatmak için tek bir alıntı ' kullandım görebilirsiniz. Sorum şu ki çift tırnaklardan hala kaçmaya ihtiyacım var mı? Bildirimin bu olmadan çalışacağını biliyorum ama en iyi uygulama nedir?

document.write('<img src=\"http://www.google.com\" />'); 

Bunu sormamın sebebi ben (yukarıdaki satıra gibi) bir görüntünün kapalı yangınlar ama görünmüyor çalışıyor gibi tüm olanakları ekarte etmek olduğunu yazdık koşullu deyimi var olan buna ne sebep olabilir? Her gün bu gibi şeylerle karşılaşıyorum, böylece herhangi bir yardım çok takdir edilecektir. Bu belki de bir öfke soru belki de özür dilerim ...

+0

Bir dupe olarak işaretlenmemiş, çünkü eğer birincil olarak atıfta bulunulursa, NOR'yi sormaz, “en iyi uygulama” ile ilgili tartışmayı kapsar, oysa en iyi uygulama konusunu doğru detaylarda ele alır. –

cevap

13

Tek tırnak işaretleri kullanırken tek tırnaktan kaçmanız gerekir, çift tırnak değil.

(Düzeltme:! Ve tam tersi)

+0

teşekkürler. İkinci örnekte çifte alıntıdan kaçmak gibi bir yanlışlık var mı? Yine de yaparsam ne olur? – zik

+0

Onunla ilgili yanlış bir şey yok (google.com'un bir resim döndürmediği hariç!) – Tim

+0

Haha, evet muhtemelen kötü bir örnek ama ne yaptığımı görüyorsun. cevap için teşekkürler. – zik

1

document.write('<img src="http://www.google.com" />'); gayet çalışacak. document.write("<img src='http://www.google.com' />");

3
document.write('<img src="http://www.google.com" onClick="foo(\'bar\');" />'); 

için

aynı sayıları yalnızca kullandığınız tırnak aynı tür kaçmak gerekir.

+0

hey, ben var veri var = "bar" '; ve bu değişkeni '\ 'bar \'' yerine kullanmak istiyorum?Burada ne demek istediğini anladım ... ama benim durumum değişkeni kullanmam gerekiyor ki "\ bar \' –

+0

@Digital_at_heart - Değişkenin nasıl tanımlandığı önemli değil. ''';' – OptimusCrime

0
<html> 
<body> 

<script type="text/javascript"> 

document.write(escape("<img src=\"http://www.google.com\" />")); 

</script> 

</body> 
</html> 
3

Şimdiye kadar resminiz var: o dizgenin sınırlayıcı olarak kullanmadığınız tırnaklardan kurtulmanıza gerek yok. Ancak: en iyi uygulama, farklı bir hikaye. Size her zaman 'kaçan alıntılardan' bahsetmek için iyi bir alışkanlık olduğunu söyleyecek bazı insanlar biliyorum. Katılmıyorum. Diğer bazı dillerden farklı olarak JavaScript, kaçış karakterleri söz konusu olduğunda makul derecede hafiftir: ikinci örneğinizde, ters eğik çizgi yazdırılamaz.

Bu her zaman geçerli değildir, bu nedenle öneri şu olacaktır: hangi alıntılarda kullandığınızı tutarlı (tek || çift) ve yalnızca kaçması gerekenlerden kaçış. Kullandığınız diğer dillere bağlı olarak, hangi teklifleri kullanacağınızı biraz düşünmek isteyebilirsiniz. Örneğin, PHP'yi kullanıyorsanız, çift tırnaklar bir dizgeyi sınırlamaktan daha fazlasını yaptığından, tek tırnaklara yapışır. C-gibi dilleri (veya Java) yazmak için alışkınsanız, en iyi çift tırnak kullanma alışkanlığı içinde kalmayın, çünkü bu dillerdeki tek ve çift tırnaklar arasında daha büyük bir fark var

+0

Bunun için teşekkürler. Javascript'te tutarlılık açısından çift tırnak kullanmayı tercih ediyorum ama javascript gibi bir dil için tek tırnakların takip edilmesi daha kolay! – zik

+2

Tamamen, özellikle, özellikle bir dizge olarak yeni elemanlar oluşturuyorsanız, çift tırnak işaretleri ile kolayca yapışabilir ve 'var newImg = document.createElement (" img ") işlevini kullanabilir ve bu gibi özellikleri atayabilirsiniz: 'newImg.src =" http://www.google.com "; bu nedenle kaçan küme sınırlayıcılarından veya alıntılama türlerinin karıştırılmasından kaçınılmalıdır. –