Как я мешаю странице разгрузиться (перешедший далеко) в JS?

innerHTML имеет побочные эффекты (как разъединение существующих узлов DOM и перерендеринг, который мог бы быть тяжелым). Нужно знать об этих эффектах. И любой поддерживающий код должен будет остерегаться этого, innerHTML используется, или они могли бы столкнуться со странными ошибками.

68
задан Dan Atkinson 17 April 2015 в 15:37
поделиться

4 ответа

onbeforeunload - это тот, который вам нужен; ваша функция "должна присвоить строковое значение свойству returnValue объекта Event и вернуть ту же строку" . Дополнительные сведения см. В документации Microsoft и Mozilla .

Возвращаемая вами строка будет использоваться браузером для представления пользователю настраиваемого окна подтверждения, позволяющего отказаться от оставайтесь там, если они того пожелают. Это необходимо сделать таким образом, чтобы предотвратить вредоносные сценарии, вызывающие атаку типа "отказ в доступе к браузеру".

84
ответ дан 24 November 2019 в 14:07
поделиться

you want to use the onbeforeunload event.

19
ответ дан 24 November 2019 в 14:07
поделиться

Try using e.preventDefault() instead of returning false. 'e' would be the first argument to your unload callback.

-5
ответ дан 24 November 2019 в 14:07
поделиться
window.onbeforeunload = function() { 
  if (warning) {
    return 'You have made changes on this page that you have not yet confirmed. 
    If you navigate away from this page you will loose your unsaved changes';
  }
}

не поддерживается в Chrome, Safari и Opera

4
ответ дан 24 November 2019 в 14:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: