SORU
18 EYLÜL 2008, PERŞEMBE


Ne özelliği işleyicisi içinde JavaScript kodu içindeki bir dize kaçmak mı?

Belki bunun hakkında çok sert düşünüyorum, ama bir sorun, bir bağlantı özelliği işleyicisi içinde bazı JavaScript kodu bir dize üzerinde kullanmak için kaçan ne çözemedim ben. Örnek:

<a href="#" onclick="SelectSurveyItem('<%itemid%>', '<%itemname%>'); return false;">Select</a>

<%itemid%> <%itemname%> şablon değiştirme oluşur. Benim sorunum madde adının herhangi bir karakter, tek ve çift tırnak da dahil olmak üzere içerebilir. Eğer tek tırnak işaretleri içeriyorsa, şu anda JavaScript kodu kırıyor.

İlk aklıma şablon dili JavaScript-kaçış tırnak kaçar öğe adı, işlev kullanmak olmuştur. Bu dizenin link HTML tatili çift tırnak içeren düzeltecektir. Normalde bu sorun nasıl ele alınır? HTML-kaçış tüm özelliği işleyicisi gerek var mı?

Eğer öyleyse, bu şablon dil kaçışı da parantez, tırnak işareti, noktalı virgül, HTMLify olurdu işlevi, çünkü bu gerçekten garip görünüyor

Bu link bir arama sonuçları sayfasında her sonuç için üretiliyor, JavaScript etiket içinde ayrı bir yöntem oluşturma sonucu başına bir oluşturmak gerek çünkü mümkün değil yani.

Ayrıca, ev yapımı çalıştığım şirkette olduğu bir şablon motoru kullanıyorum, seti-özel çözümler bana bir yararı olacak.

CEVAP
18 EYLÜL 2008, PERŞEMBE


JavaScript gibi tek tırnaklı kodla "\x27" ve çift tırnak gibi "\x22". Bu nedenle, bu yöntemi kullanabilirsiniz, hepsi içeri girince (tek veya çift) tırnak bir JavaScript dize, kullan \x27 \x22 ile dokunulmazlık korkmadan herhangi bir gömülü tırnak "patlak" dizesi.

\xXX Unicode, sağlam oluşturabilirsiniz bu bilgi ile silahlı için chars&; 127 ve \lt uXXXXJSEncodeher zamanki beyaz dışında tüm karakterler için işlev.

Örneğin,

<a href="#" onclick="SelectSurveyItem('<% JSEncode(itemid) %>', '<% JSEncode(itemname) %>'); return false;">Select</a>

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009
  • Trulia

    Trulia

    29 Kasım 2006