Как отловить кнопку «Назад»
Видел варианты, когда по таймауту анализировалась адресная строка... А проще можно. Нужна функция, которая при нажатии кнопки «назад» просто выполняет заданный код
|
HTML5-History-API и событие onpopstate
|
Есть ли варианты решения этой задачи, без HTML5?
|
нет,
разве что навешивать на все действия (который могут пустить нас вперед) идентефикаторы числовые и менять якорь на #action344 и хранить текущий якорь в куках и проверять при событии "смена якоря" стал он больше чем в куках или меньше) таким образом отслеживать вперед мы перешли или назад)) |
п.с. а зачем ты не хочешь использовать актуальный html5 ?
если ни секрет и зачем хочешь использовать устарелые технологии)? |
Цитата:
В примерах что-то типа этого было:
setTimeout( function() {
window.addEventListener("popstate", function(e) {
MainUrl=e.location || document.location;
if(oldUrl.pathname==MainUrl.pathname && oldUrl.hash.substring(1,1)!='/'){
/*alert(oldUrl.pathname+'|'+MainUrl.pathname+'|'+oldUrl.hash);*/
return;}
LoadMainUrl(MainUrl.href);
}, false);
}, 900 );
|
Цитата:
|
Цитата:
По инету много разбросано примеров работы с History API |
Цитата:
devote, музыка завораживает, кто это поет? можно ссылку на торрент альбома? |
Цитата:
|
Цитата:
Тест браузера на поддержку стандартов HTML5: http://html5test.com/ |
Цитата:
В принципе, чего переживать, IE8 и выше, поддерживает отслеживание изменений hash. А тех пользователей, у кого версия браузера ниже восьмой, можно отправлять на страницу загрузки нового браузера(пусть обновляют браузер). Событие при изменении hash:
window.onhashchange = function() {
var hash = window.location.hash.substring(1);
alert(hash);
}
Проверка на версию браузера IE:
var ua = navigator.userAgent;
if(ua.search(/MSIE/) > 0) {
if((navigator.appVersion.match(/MSIE\u0020([.\d]+);/)[1]<8)) { // если версия ниже восьмой
document.location.href='http://www.site.ru/bad_browser.html';
}
}
|
Цитата:
Цитата:
|
Цитата:
var ua = navigator.appName;
if(ua.indexOf("Microsoft") != -1) {
alert("Это IE");
}
:) |
| Часовой пояс GMT +3, время: 21:28. |