我相信这是一个很简单的问题。
我正在使用 jquery 进行 ajax 调用,我想要的只是在调用后设置自定义哈希,类似于:
window.location.hash = '?url=http://www.sitename.com';
但它在此之前返回 # 符号,我不想要它
www.mysitename.com/#?url=http://www.sitename.com
所以基本上如何删除那个 # 符号并在没有它的情况下附加一个干净的哈希?
谢谢你。
我相信这是一个很简单的问题。
我正在使用 jquery 进行 ajax 调用,我想要的只是在调用后设置自定义哈希,类似于:
window.location.hash = '?url=http://www.sitename.com';
但它在此之前返回 # 符号,我不想要它
www.mysitename.com/#?url=http://www.sitename.com
所以基本上如何删除那个 # 符号并在没有它的情况下附加一个干净的哈希?
谢谢你。
你不能。如果你想设置一个查询字符串(这些东西),你必须通过改变(只有查询字符串)?something=something
来设置它(这样做会导致页面重新加载)或者- 没有 AJAXish/Web2.0ish ;)location.search
location.href
哈希是签名后的客户端部分#
,从不发送到服务器。它纯粹是针对页面元素(例如 a<h2 id="something">
是 hash 的目标#something
),现在将状态信息保存在 URL 中,以便后退/前进按钮在 AJAX 应用程序中继续工作(即使最终将被 HTML5 的 pushState 函数取代)。
如果您仍想使用哈希,请以与google 兼容的方式进行。基本上,这意味着您应该#!something
在散列中使用something
也可以是经典(非 AJAX)请求中真实 URL 的一部分。
根据MDC 文档hash
,URL 中的内容是:
URL 中 # 符号之后的部分,包括 # 符号。
请注意,#
字符(我相信在北美称为“井号”)通常称为“哈希”。
你想设置window.location.search
。这是:
跟在 ? 后面的 URL 部分 符号,包括 ? 象征。
请注意,这会触发重新加载。如果您不想这样做,则需要使用该hash
属性。