Я сделал лот работы с историей и использованием хэша. Почти у всех существующих плагинов истории есть своего рода пробел в них. Один я использовал это довольно близко к идеальному, это один, который является плагин JQuery:
http://www.mikage.to/jquery/jquery.history.js
Он был обновлен в марте этого года обрабатывает IE 8 вопросов, и она также имеет дело с IE6 довольно успешно. Одна вещь, которую я заметил, это то, что IE действительно ненавидит? в хеше после #. Он перестает правильно обрабатывать хэш, когда? настоящее. Даже этот, я думаю, нуждается в небольшом патче для?, Мне действительно нужно отправить его в Микаге. Способ справиться с этим, вместо того, чтобы использовать location.hash
в плагине при ссылке на хэш, используйте эту функцию:
function getHash(loc) {
loc = loc.toString();
if (loc.indexOf("#") != -1)
return loc.substring(loc.indexOf("#"));
else return "";
}
Таким образом, в тех местах, где вам нужно хэш, передать location
функционировать ...
getHash(location)
... вместо использования location.href. Но обратите внимание, что для IE, поскольку он использует iframe, вы хотите использовать iframe.location.
getHash(iframe.location)
Bug Yahoo,
Вы можете видеть, что Yahoo не корректно обрабатывать 's в IE, если смотреть на этот URL:
http://developer.yahoo.com/yui/examples/history/history-tabview.html#tabview=tab1?7236471234
Он должен просто игнорировать несуществующий модуль (который он делает для других имен, в которых нет?). Но это вызывает ошибку JavaScript, когда? находится в URL-адресе.
(Я направляю этот список в настоящее время)
Действительно Просто история
Честно говоря, это основная проблема, кажется, он ушел в спящем состоянии. Я испытал this issue и просто не хотят, чтобы вырыть через него:
Кроме того, несмотря на то, что никаких изменений не появляются в имеют место на странице в то время как я путешествую назад по истории, задняя функциональность будет верните один раз, когда я ударил страниц, которые я просматривал перед тем, как использовать RSH. Итак, если я нажал на четыре ссылки на странице RSH, назад функциональность вернется после Я нажал на кнопку возврата четыре раз. Я надеюсь, что в этом есть смысл.
+1 за пробелы, но что более важно для? после #, который может быть легко убийцей здесь – annakata
Я никогда не слышал о '#?' выпуск перед тем. Хорошо знать. –
Самое смешное, что я смоделировал свою функцию истории работать точно так же, как URL-адрес, и думал, что я очень умный. После блуждания по поводу различных реализаций, и, увидев, что у меня все получилось, я столкнулся с facebook, который, случается, использует очень похожую идею для отслеживания истории. Честно говоря, я должен превратить это в более плавный плагин, который дополняется парсером URL и делает его управляемым событием. – cgp