25.05.2012, 01:49
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Возможен ли Запуск ява-скрипт при откате Истории в браузере назад ?
Возможен ли Запуск ява-скрипт при откате Истории в браузере назад ?
|
|
25.05.2012, 08:39
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Ну то есть вы думаете, что те, кто не в контексте вашей задачи, поняли, что вам надо?
|
|
25.05.2012, 08:49
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
речь наверно о History API ну или можно отловить нажатие кнопки back через событие popstate
|
|
25.05.2012, 11:08
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
devote, Ну собственно наверно так
Не посоветуете, где прочитать про событие popstate, и интересует кроссбраузерность,
|
|
25.05.2012, 11:44
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Собственно задачи две:
1-я. На маййб(бесплатные форумы без доступа к движку) анализирую у новичков форму отправки сообщений на спам, при наличии спам ссылок, добавляю при субмите метку в тот же textarea, страница обновляется и выводится в этом же окне(это всё в компетенции движка) при возможном возврате пользователя на предыдущую страницу желательно метку удалить.
2-я задачка - несколько сложнее...
Последний раз редактировалось Deff, 26.05.2012 в 07:47.
|
|
26.05.2012, 04:49
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Хотя бы пример с запуском алерт при переходе на страницу назад ???
Последний раз редактировалось Deff, 27.05.2012 в 00:18.
|
|
27.05.2012, 00:02
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
на вот не мучайся, наколенный вариант, но должен работать:
(function( window ){
var
eventType = window.addEventListener ? [ "addEventListener", "" ] : [ "attachEvent", "on" ],
previousePage = "",
handler = [];
window[ eventType[ 0 ] ]( eventType[ 1 ] + "load", function(){
if ( window.name && window.name !== location.href ) {
previousePage = window.name;
for( var i = 0; i < handler.length; i++ ) {
handler[ i ]( previousePage );
}
}
window.name = location.href;
}, false );
document[ eventType[ 0 ] ]( eventType[ 1 ] + "click", function( e ) {
e = e || window.event;
// если был клик по ссылке,
if ( ( e.target || e.srcElement ).nodeName === "A" ) {
// то очистим window.name что бы не сработало событие при загрузке
window.name = "";
// обратно заполним window.name если ссылка не сделала переход в течении секунды.
setTimeout( function() {
window.name = location.href;
}, 1000 );
} else {
// навсякий случай заполним window.name при клики на других тегах
window.name = location.href;
}
}, false );
window.trackingHistory = function( listener ) {
if ( previousePage ) {
listener( previousePage );
} else {
handler.push( listener );
}
}
})( window );
trackingHistory(function( previousPage ) {
alert( "Сделали переход по истории, со страницы: " + previousPage );
});
Последний раз редактировалось devote, 27.05.2012 в 00:20.
Причина: Подправил немного код
|
|
27.05.2012, 00:12
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
devote, Спасибо! (Плусы зажал сайт
Да мну вродь и я сельским методом чот реализовал (я смотрел Ваш бронепоезд на хабре, Ыы для моей задачи проще забыть про тот скрипт) - прост сам скрипт теста спама - десяток строк ...
Этот Конечно покороче хабра ( Потещу сейчас СПС...
|
|
27.05.2012, 00:19
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Поправил немного код, скопируй заного
|
|
27.05.2012, 00:23
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Пасиб ... Ксать у мну тож часто (работаю в тех поддержке ... ну оторвут от кофе, как ток сядешь пить - то кавычку забыл, то лишний тег вставил
|
|
|
|