document.referrer编码问题

时间:2012-04-19 11:57:29

标签: javascript jquery

referrer`并将值保存在cookie中。结果是这样的,有奇怪的字符:

http%3A//www.rzammit.com/props/testpage.asp%3Fadv%3D123%26loc%3D45

如何删除这些奇怪的字符,以便链接显示正确?

感谢

1 个答案:

答案 0 :(得分:1)

  1. 使用一个cookie脚本,在返回cookie之前取消该cookie,或者
  2. 在这里查看如何urldecode:Javascript equivalent to php's urldecode()
  3. var url = "http%3A//www.rzammit.com/props/testpage.asp%3Fadv%3D123%26loc%3D45";
    url = decodeURIComponent(url.replace(/\+/g, ' '));
    

    以下是自90年代中期以来我使用过的cookiescript - 免费用encodeURIComponent替换escape,使用decodeURIComponent替换unescape以将其带入2010s;)

    // cookie.js file
    var cookieToday = new Date(); 
    var expiryDate = new Date(cookieToday.getTime() + (365 * 86400000)); // a year
    
    /* Cookie functions originally by Bill Dortsch */
    
    function setCookie (name,value,expires,path,theDomain,secure) { 
       value = escape(value);
       var theCookie = name + "=" + value + 
       ((expires)    ? "; expires=" + expires.toGMTString() : "") + 
       ((path)       ? "; path="    + path   : "") + 
       ((theDomain)  ? "; domain="  + theDomain : "") + 
       ((secure)     ? "; secure"            : ""); 
       document.cookie = theCookie;
    } 
    
    function getCookie(Name) { 
       var search = Name + "=" 
       if (document.cookie.length > 0) { // if there are any cookies 
          var offset = document.cookie.indexOf(search) 
          if (offset != -1) { // if cookie exists 
             offset += search.length 
             // set index of beginning of value 
             var end = document.cookie.indexOf(";", offset) 
             // set index of end of cookie value 
             if (end == -1) end = document.cookie.length 
             return unescape(document.cookie.substring(offset, end)) 
          } 
       } 
    } 
    function delCookie(name,path,domain) {
       if (getCookie(name)) document.cookie = name + "=" +
          ((path)   ? ";path="   + path   : "") +
          ((domain) ? ";domain=" + domain : "") +
          ";expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
    
相关问题