使用JavaScript在URL哈希中插入特殊字符

使用JavaScript在URL哈希中插入特殊字符,javascript,url,yui,special-characters,Javascript,Url,Yui,Special Characters,我想将哈希添加到我的URL。比如说 http://somesite.com/somesubdomain#p1=1&p2=2&p3=3 当我尝试这样做时,我得到的只是: http://somesite.com/somesubdomain#p1=1%23p2=2%23p3=3 简而言之,如何在URL哈希中添加特殊字符 编辑: 我正在使用YUI浏览器历史管理器 var hash = "p1=1&p2=2&p3=3" YAHOO.util.History.naviga

我想将哈希添加到我的URL。比如说

http://somesite.com/somesubdomain#p1=1&p2=2&p3=3
当我尝试这样做时,我得到的只是:

http://somesite.com/somesubdomain#p1=1%23p2=2%23p3=3
简而言之,如何在URL哈希中添加特殊字符

编辑:

我正在使用YUI浏览器历史管理器

var hash = "p1=1&p2=2&p3=3"
YAHOO.util.History.navigate("state",hash);

你在YUI中应该这样做的方式似乎是:

YAHOO.util.History.navigate('p1','1');
YAHOO.util.History.navigate('p2','2');
YAHOO.util.History.navigate('p3','3');
如果希望浏览器URL字符串为
http://somesite.com/somesubdomain#p1=1&p2=2&p3=3


文档中的说明说明了这一点。

提供您试图运行的代码<代码>window.location=http://somehost/“+”#p1=1&=p2=2”对我来说非常合适。你在所有浏览器中都遇到过这种情况吗?Url编码是你正在寻找的。这就是你想要的。但当您需要时,YUI没有正确地解码您的状态吗?我不能使用window.location,encodeURIComponent在我的情况下也不有用,可能是我应该查看YUI的历史API。@DmitryPashkevich:没有。它迫使我使用多个模块,如果我想插入“&”。所以,YUI history manager的哈希字符串中不能包含任何特殊字符。所以,似乎不可能告诉浏览器应该对字符串的哪一部分进行编码。但是,无论如何,谢谢你的回答。我将关闭问题或接受答案。我不认为这里有问题,如果您想将状态数据分配给单个模块,请让YUI对其进行URL编码,然后在模块的逻辑中对其进行解码和解析。YUI需要对数据进行编码,以便能够区分不同的模块。如果您需要改进应用程序体系结构的建议,请打开一个新问题。