Используйте JavaScript, чтобы найти текущий URL из адресной строки в IE8 - PullRequest
2 голосов
/ 27 октября 2010

Я меняю закладку в URL при загрузке страницы.Таким образом, когда пользователь нажимает кнопку «Назад» в браузере, браузер фактически не вернется назад, а вместо этого изменит закладку.Затем я могу обнаружить изменение закладки и сделать что-то еще в качестве реакции на пользователя, нажимающего кнопку возврата.

Моя проблема заключается в том, чтобы найти текущий URL, включая любые изменения закладки / хэша.Он работает во всех браузерах, используя комбинацию следующего, но не в IE8:

document.URL
location.href
window.location.hash

и window.onhashchange

Поскольку он не работает для IE8, может кто-нибудь, возможно,указываете мне правильное направление на то, как я могу обнаружить изменение закладки / хэша в IE8?

Ответы [ 2 ]

1 голос
/ 27 октября 2010

По словам автора плагина хеш-обмена jQuery , IE8 поддерживает привязку к событию window.onhashchange из коробки.

Возможно, вы можете попробовать использовать плагин Бена, который предназначен для включения обнаружения изменений хеша в старых браузерах.

РЕДАКТИРОВАТЬ: Мои тесты показали, что событие не запускается в IE8. Затем я нашел следующий комментарий в приведенном выше исходном коде плагина:

// Note that IE8 running in
// IE7 compatibility mode reports true for 'onhashchange' in window, even
// though the event isn't supported, so also test document.documentMode.

По-видимому, я работаю в documentMode 5 , который находится в режиме причуд. Бьюсь об заклад, он работает только в режиме стандартов IE8. В любом случае, вы должны быть в состоянии реализовать тот же код JS , который использовал Бен.

1 голос
/ 27 октября 2010

Посмотрите на jquery-bbq , так как он реализует hashchange и заставляет его работать в IE6-IE8 и, возможно, IE9 сейчас. Вы, вероятно, можете полностью положиться на него вместо своего пользовательского кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...