Существуют ли ограничения набора символов или странности автоконверсии для location.hash? - PullRequest
0 голосов
/ 23 сентября 2011

Я хочу хранить и извлекать данные через хеш URL. пользователь может выполнить некоторые настройки выпадающего меню на странице, которые должны быть записаны в URL через функцию location.replace *.

для простоты теперь он работает так: изначально пользователь находится на test.com. после изменения двух настроек URL выглядит так: http://test.com#fruit→banana#color→light blue.

другой почти такой же простой способ будет http://test.com#fruit=banana, color=light blue. единственные символы, которые содержатся в настройках и параметрах (как регулярное выражение) [A-Za-z &]

насколько я могу судить, это работает нормально, хотя в firefox url-экранирует все при копировании, а chrome - нет. после вставки и нажатия кнопки ввода, в строке URL отображается неэкранированный хеш, выборка location.hash для каждого javascript также дает неэкранированную строку юникода.

мой вопрос: есть ли какие-либо проблемы, несоответствия или другие странности, о которых я не знаю?


* К вашему сведению: location.replace("#hash") работает так, как и следовало ожидать: D

1 Ответ

1 голос
/ 23 сентября 2011

Как я уже отметил в комментарии, забудьте

location.hash 

и используйте

location.href.replace(/^[^#]+/,'');

вместо этого.

Это избавит вас от целой кучи неприятностей.

...