【问题标题】:window.location.pathname Chrome vs Mozillawindow.location.pathname Chrome vs Mozilla
【发布时间】:2012-06-19 12:08:53
【问题描述】:

我想通过函数 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

有人知道吗?

谢谢。

【问题讨论】:

标签: javascript browser


【解决方案1】:

您必须了解location.hash 也包括# 本身。根据规范,location.hash 的其余部分是 URL 编码的,但 # 不是。

我说的是“按规格”,因为 Firefox 有一个与 location.hash 属性相关的 bug

如果您想将 location.pathname 更改为包含该值的哈希值,则必须先对 # 进行编码。

例子:

var hash=location.hash.substring(1)
location.pathname='%23'+hash

如果您不想包含哈希,只需使用

var hash=location.hash.substring(1)
location.pathname=hash

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2012-07-10
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多