|
|
|
Es muy útil en el momento de enviar variables en una URL donde pueden aparecer carácteres no válidos que pueden dar errores.
<html><head> <title>Untitled Document</title> <script language="JavaScript">
var hexVals = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var unsafeString = ""%^[]`";
function highlight(element1){element1.focus();element1.select();}
function URLDecode() { var returnstr=unescape(form1.string1.value); document.all.div1.innerHTML=`RESULT:<br><textarea name="textarea2">`+returnstr+`</textarea>`; highlight(form3.textarea2); // while coding i found that IE had problem writing `<form>` to innerhtml. </form> was ok. `unknown runtime error` IE5.5. }
function URLEncode(val) { var state = `urlenc`; var len = val.length; var backlen = len; var i = 0;
var newStr = ""; var frag = ""; var encval = "";
for (i=0;i<len;i++) { // uncomment the next 7 commented lines to encode only the usual URL unsafe characters // if (isURLok(val.substring(i,i+1))) // { // newStr = newStr + val.substring(i,i+1); // } // else // { tval1=val.substring(i,i+1); newStr = newStr + "%" + decToHex(tval1.charCodeAt(0),16); // } } document.all.div1.innerHTML=`RESULT:<br><textarea name="textarea2">`+newStr+`</textarea>`; highlight(form3.textarea2); }
function decToHex(num, radix) // part of URL Encode { var hexString = ""; while (num >= radix) { temp = num % radix; num = Math.floor(num / radix); hexString += hexVals[temp]; } hexString += hexVals[num]; return reversal(hexString); }
function reversal(s) // part of URL Encode { var len = s.length; var trans = ""; for (i=0; i<len; i++) { trans = trans + s.substring(len-i-1, len-i); } s = trans; return s; }
function isURLok(compareChar) // part of URL Encode { if (unsafeString.indexOf(compareChar) == -1 && compareChar.charCodeAt(0) > 32 && compareChar.charCodeAt(0) < 123) { return true; } else { return false; } } </script> </head>
<body> <table align="center"> <tr> <td align=center bgcolor="#FFFFFF"><form name="form1" onsubmit="URLDecode();return false;"> <font face="Verdana, Arial" size=2><b><u><big>URL Encode/Decode</big></u></b></font> <br> <textarea name="string1" cols="40" rows="8"></textarea> <br> <input type="button" value="Decode" onclick="URLDecode();"> <input type="button" value="Encode" onclick="URLEncode(form1.string1.value);"> </form> <form name="form3"> <div align=center id="div1"></div> </form></td> </tr> </table> </body> </html>
|
|