Как я могу обнаружить пользователя о выходе из страницы?

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

Это уже сделано Optin Monster , но я хочу реализовать его сам.

Когда начать?

Изменить: beforeunload запускается после нажатия пользователем кнопки «Назад» или «x». Я хотел бы поймать его намерение выхода , например, когда мышь движется к задней кнопке, но до того, как она была нажата.

    Ouibounce делает это. Здесь есть живая демонстрация .

     npm install ouibounce 

    Затем:

     var ouibounce = require('ouibounce'); var modal = document.getElementById('ouibounce-modal') ouibounce(modal); 

    Вот как вы можете это сделать:

     $(document).on('mouseleave', leaveFromTop); function leaveFromTop(e){ if( e.clientY < 0 ) // less than 60px is close enough to the top alert('yu leave from the top?'); } 

    Надеюсь, это то, что вы ищете. Удачи!

    Проблема, которую я нахожу в этих методах (например, тот, который реализован на Ouibounce или предложенный Христом Георгиевым), также обнаруживает, когда мышь входит в окно, если курсор находится за пределами страницы до загрузки страницы. Это неважно, но это может привести к нежелательному поведению. Для этого решения необходимо сделать дополнительную настройку. Одна вещь, которая приходит мне на ум, знает, что нужно использовать флаг для проверки логики мыши.