0

我相信这是一个很简单的问题。

我正在使用 jquery 进行 ajax 调用,我想要的只是在调用后设置自定义哈希,类似于:

window.location.hash = '?url=http://www.sitename.com';

但它在此之前返回 # 符号,我不想要它

www.mysitename.com/#?url=http://www.sitename.com

所以基本上如何删除那个 # 符号并在没有它的情况下附加一个干净的哈希?

谢谢你。

4

2 回答 2

6

你不能。如果你想设置一个查询字符串(这些东西),你必须通过改变(只有查询字符串)?something=something来设置它(这样做会导致页面重新加载)或者- 没有 AJAXish/Web2.0ish ;)location.searchlocation.href

哈希是签名后的客户端部分#,从不发送到服务器。它纯粹是针对页面元素(例如 a<h2 id="something">是 hash 的目标#something),现在将状态信息保存在 URL 中,以便后退/前进按钮在 AJAX 应用程序中继续工作(即使最终将被 HTML5 的 pushState 函数取代)。

如果您仍想使用哈希,请以与google 兼容的方式进行。基本上,这意味着您应该#!something在散列中使用something也可以是经典(非 AJAX)请求中真实 URL 的一部分。

于 2011-01-31T23:33:53.203 回答
1

根据MDC 文档hash,URL 中的内容是:

URL 中 # 符号之后的部分,包括 # 符号。

请注意,#字符(我相信在北美称为“井号”)通常称为“哈希”。

你想设置window.location.search。这是:

跟在 ? 后面的 URL 部分 符号,包括 ? 象征。

请注意,这会触发重新加载。如果您不想这样做,则需要使用该hash属性。

于 2011-01-31T23:34:12.727 回答