Как обнаружить кнопку возврата и новое окно? - PullRequest
6 голосов
/ 21 марта 2011

Я не сомневаюсь, что они, вероятно, где-то задокументированы в Интернете и проиндексированы Google - но после просмотра страниц и страниц ссылок на обсуждения о отключении функциональности, которую я хотел бы попросить посмотрите, может ли кто-нибудь дать полезные ответы о простом обнаружении их использования.

Метод, описанный в одной из улучшенных статей по отключению кнопки «Назад», работает только путем создания перехода страницы - так что его мало используют для обнаружения.

Наличие window.history.next может обеспечить механизм для обнаружения кнопки «назад» - но насколько широко она поддерживается? Требуются ли необычные привилегии?

Ответ Джонатана на этот пост выглядит многообещающим - но предполагает, что я могу задать имя окна при первой посадке - я думаю, я мог бы использовать отсутствие cookie для обнаружения первого попадания. Есть другие идеи?

ТИА

Ответы [ 2 ]

0 голосов
/ 22 марта 2011

Некоторое время назад я написал некоторый код.Скрипт никогда не был полностью протестирован, но вы должны быть в состоянии использовать некоторые приемы, чтобы получить тот же эффект, что и при обнаружении кнопки «Назад».

http://pastebin.no/32fx

0 голосов
/ 21 марта 2011

Использовать sessionStorage / localStorage.

if (!sessionStorage.hasBeenHereBefore) sessionStorage.hasBeenHereBefore = true;
else {
    // Code to run if they've been here before.
}

Если вы используете sessionStorage, то если они закроют браузер и вернутся, это будет похоже на первый раз, но если вы используете localStorage, то он останется навсегда.

Вы можете попробовать поискать некоторые секретные события, такие как:

window.addEventListener('historyback', function () {}, false);
window.addEventListener('navigateback', function () {}, false);
window.addEventListener('returntopage', function () {}, false);
...