Я сделал много работы с историей и использованием хэша. Почти во всех существующих плагинах истории есть какой-то пробел. Тот, который я использовал, который довольно близок к идеальному, это плагин 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)
Ошибка Yahoo
При просмотре этого URL вы можете видеть, что Yahoo не корректно обрабатывает? В IE:
http://developer.yahoo.com/yui/examples/history/history-tabview.html#tabview=tab1?7236471234
Он должен просто игнорировать несуществующий модуль (что он делает для других имен, в которых нет?). Но возникает ошибка JavaScript, когда? находится в URL.
(я расширю этот список чуть позже)
Действительно просто история
Честно говоря, это главная проблема, кажется, что она ушла из спячки. Я столкнулся с этой проблемой и просто не хотел копаться в ней:
Кроме того, несмотря на отсутствие изменений в
занять место на странице, пока я путешествую
назад через историю, назад
функциональность вернется, как только я нажму
страницы, по которым я перемещался
перед тем, кто использует RSH. Итак, если я
нажал на четыре ссылки на странице RSH,
назад функциональность вернется после
Я нажал на кнопку назад четыре
раз. Я надеюсь, что это имеет смысл.