我有一个javascript函数:
function QuoteBeGone(url)
{
location.href = url;
}
传递的网址已经过编码,例如http://www.target.com/page.asp?name%3DJohn%27s%2BProject
,但是当加载新网页时,网址会被取消编码 - http://www.target.com/page.asp?name=John's+Project
。
撇号正在弄乱页面,所以我想将它保存在URL中,但它似乎不会保持这种状态。我假设location.href函数在传递URL之前解释URL。
有什么建议吗?
答案 0 :(得分:2)
在您创建传递给该函数的网址的位置,使用encodeURIComponent()
的值name
e.g。
var john = "John's Project";
QuoteBeGone('http://www.target.com/page.asp?name='+encodeURIComponent(john));
如果由于导航到该URL而仍希望在解码后对其进行编码,则必须进行双重编码:
QuoteBeGone('http://www.target.com/page.asp?name='+encodeURIComponent(encodeURIComponent(john)));