Webkit превращает "#" в% 23, вызывая 404 ошибки? - PullRequest
0 голосов
/ 23 августа 2011

Я просто создаю простой ajax-сайт, но сталкиваюсь с проблемой в Safari и Chrome. Я просто создаю простое перенаправление, если пользователь переходит на страницу, т.е.

"/blog" 

они будут перенаправлены на

"/#/blog"

код:

url = window.location.pathname

if(url != "/") {
   window.location.pathname = "/#" + url
}

Это прекрасно работает в FireFox, но, к сожалению, браузеры webkit превращают «#» в «% 23» и дают 404, например:

"/%23/blog"

Как я могу предотвратить это?

Спасибо, Alex

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

pathname относится ко всему после хоста и до строки запроса и хэша.Подумайте об этом:

window.location.hash = window.location.pathname;
window.location.pathname = "/";

Я не совсем уверен, какие браузеры правильно реализуют спецификации JavaScript, но поведение WebKit мне кажется правильным.

1 голос
/ 23 августа 2011

Вы задаете имя пути, которое по определению не включает хеш. Webkit пытается исправить это за вас (Firefox просто лучше угадал, что вы хотели). Попробуйте это:

window.location = '/#/blog';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...