Thursday, June 23, 2011

URL Encoding using JQuery

Ever came across a scenario where you have to encode using JavaScript/JQuery other than using C# especially in SharePoint.One of my experience User required a link when clicked to be passed as filter value to the Document Library/List.If the value is simple Text its easy but if the value contains Ex: Harrison & Thomas there is the problem .If you pass in the mentioned value as a  Query string parameter it understands as two arguments and hence the Library is not filtered .Here comes the encoding part as we can extended the Jquery Library function.

$.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();
var r=/(^[a-zA-Z0-9_.]*)/;
  while(x
    if(m!=null && m.length>1 && m[1]!=''){o+=m[1];x+=m[1].length;
    }else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16);
    o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;},
URLDecode:function(s){var o=s;var binVal,t;var r=/(%[^%]{2})/;
  while((m=r.exec(o))!=null && m.length>1 && m[1]!=''){
  b=parseInt(m[1].substr(1),16);
  t=String.fromCharCode(b);o=o.replace(m[1],t);}return o;}
});

Now you can call this  function as
$.URLEncode($(this).attr("title"));

Hint: Place this script below the List in Content Editor WebPart

No comments:

Post a Comment