我想通过函数window.location.pathname更改路径名。我有这个源代码。
var hash = window.location.hash;
window.location.pathname = hash;在Mozilla中,它工作得很好,但在Chrome中不起作用。Chrome给我写了这个附件。
/%23!stranka=novinky&cisloStranky=1&rubrika=novinky&clanek=783?stranka=kontakty#!stranka=novinky&cisloStranky=1&rubrika=novinky&clanek=783
哈希值为#!stranka=novinky&cisloStranky=1&rubrika=novinky&clanek=783
有人知道吗?
谢谢。
发布于 2012-06-19 12:24:27
您必须理解location.hash也包括#本身。根据规范,location.hash的其余部分是URLencoded,但#不是。
我说的是“每个规范”,因为火狐有一个与location.hash属性相关的location.hash。
如果要将location.pathname更改为包含值的散列,则必须在这样做之前对#进行编码。
示例:
var hash=location.hash.substring(1)
location.pathname='%23'+hash如果不希望包含哈希,只需使用
var hash=location.hash.substring(1)
location.pathname=hashhttps://stackoverflow.com/questions/11100591
复制相似问题