Društvo LJUDMILA
Rozmanova ulica 12
1000 Ljubljana
Slovenia
Prostori: osmo/za

Px (Javascript)

How to do it?

Hunt for snippets, use the book. Test everywhere! Imagine there's no standard.

Links

http://www.crockford.com/javascript/remedial.html

esc

function esc( format, val ) {
   switch (format) 
   {
      case 'url':
      case 'uri':
            return esc_uri(val);
       case 'xml':
       case 'html':
           return esc_html(val);
      default:
            return val;
   }
}
function esc_html(val) {
   val=val.replace(/&/g,'&');
   val=val.replace(/</g,'<');
   val=val.replace(/>/g,'>');
   return val;    
}
function esc_uri(val){
 if(encodeURI) {
   return encodeURI(val);
 }
 if(encodeURIComponent) {
   return encodeURIComponent(val);
 }
 if(escape) {
   return escape(val);
 }
}

obstaja tudi encodeURI: The encodeURI method returns an encoded URI. If you pass the result to decodeURI, the original string is returned. The encodeURI method does not encode the following characters: ":", "/", ";", and "?". Use encodeURIComponent to encode these characters.

old escape(): encode in page's charset, then %hh

new escape(): %hh, %uhhhh for everything over unicode 256.

encodeURIComponent(): encode in UTF-8, then %hh

For chrome, which is interpreted as UTF-8, the switch from escape() to encodeURIComponent is necessary and correct. For Mozilla-specific web sites that relied on Mozilla's quirky escape() behavior, the answer is not clear. For English-only sites, escape() is better until Netscape 4 finishes dying.


Btw, encodeURIComponent rocks. I used in the "Blogidate XML Well-formedness" bookmarklet to create the body of "data:text/xml;charset=UTF-8," URLs, allowing the bookmarklet to work with XHTML that contains Japanese text.

Go read about encodeURIComponent here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsmthencodeuricomponent.asp