2012-06-19 3 views
0

Я хочу изменить путь через функцию window.location.pathname. У меня есть этот исходный код.window.location.pathname Chrome vs Mozilla

var hash = window.location.hash; 
window.location.pathname = hash; 

в Mozilla он работает правильно, но в Chrome нет. Chrome напишите мне этот адрес.

/% 23! Stránka = Novinky & cisloStranky = 1 & rubrika = Novinky & clanek = 783? Stránka = kontakty #! Stránka = 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, по спецификации, URLencoded, но # - нет.

Я сказал «за спецификацию», так как Firefox имеет bug, связанный с недвижимостью location.hash.

Если вы хотите поменять location.pathname на хэш с включенным значением, вам необходимо будет закодировать # перед этим.

Пример:

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

Если вы не хотите, чтобы хеш должны быть включены, просто использовать

var hash=location.hash.substring(1) 
location.pathname=hash 
Смежные вопросы