2012-06-19 63 views
0

我想通過函數window.location.pathname更改路徑名。我有這個源代碼。window.location.pathname Chrome與Mozilla

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

有沒有人有任何想法?

謝謝。

+1

的可能的複製http://stackoverflow.com/questions/3643041/設置JavaScript的窗口定位 – radimpe

回答

1

你必須明白,location.hash也包括#本身。根據規範,location.hash的其餘部分是URL編碼的,但#不是。

我說「按規範」,因爲Firefox有buglocation.hash財產有關。

如果您想將location.pathname更改爲包含值的散列,您必須先編碼#

例子:

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

如果您不希望被列入哈希,只需使用

var hash=location.hash.substring(1) 
location.pathname=hash 
相關問題