IE6 и IE7 Back/Forward Hash-Tag.
-
28-10-2019 - |
Вопрос
У меня есть веб -сайт, который использует Плагин адреса jQuery от Asuly Для навигации.
Проблема, которая у меня возникает, заключается в том, что использование IE6 и IE7, когда пользователь использует кнопки Back/Produck, веб -сайт заканчивается на неожиданной странице.
Вот сокращенная версия того, что я сейчас делаю.
$.address.init(function(event) {
defaultPage = "1";
}).change(function(event) {
$("#content").html('<div><img src="/images/activity indicator.gif"></div>')
$("#content").load("./pages/"+names+".html", function(){
var names = $.map(event.pathNames, function(n) {
return n.substr(0, 1).toUpperCase() + n.substr(1);
}).concat(event.parameters.id ? event.parameters.id.split('.') : []);
pageScripts[names]();
});
});
Если я на странице /
, перейти к #/1
, перейти к #/2
, затем страница goto #/3
, Я на странице #/3, никаких проблем с этим. Когда я нажимаю «назад» в IE6 или IE7 (Chrome, FF, IE8, IE9 все работают нормально), когда на странице #/3
, Меня отправили на страницу /
. Анкет Нажатие вперед перемещает меня на страницу /#3
.
Он пропускает историю с хэш -вкладок.
Тем не менее Пример с сайта отлично работает с IE6/IE7. Я не могу найти функциональные различия между тем, что я сделал, и тем, что он делает.
Решение
Вам нужно использовать атрибут REL.
<a href="/deep-link" rel="address:/deep-link">Deep link</a>
IE6/IE7, кажется, уважает использование этого для этой функции.
У этого есть побочные эффекты (то есть на каждой ссылке с REL есть обработчик событий сейчас), что может или не может повлиять на вашу конкретную реализацию.
Примечание: я приму ответить с большей заботой и объяснением, вложенным в него, если вы действительно хотите ответить на этот вопрос.