2012-04-19 72 views
0

referrer`并将值保存在cookie中。结果来了这样的奇怪字符:document.referrer encoding issue

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

我怎样才能删除这些奇怪的字符,以便该链接将显示正确吗?

感谢

回答

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

这里是我自90年代中期以来一直使用cookiecript - 费用免费更换同encodeURIComponent方法和UNESCAPE与decodeURIComponent逃逸,使其2010年代)

// 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"; 
} 
+1

这不是'document.referrer'他的工作直接,但通过Cookie传递后的值。 'document.referrer'不是URL编码的。 – 2012-04-19 12:01:05

+0

Gotya。更新。 – mplungjan 2012-04-19 12:04:14