Предотвратить перенаправление JavaScript

Мне нужно предотвратить любую переадресацию/перезагрузку страницы, вызванную JavaScript (например, window.location.href = 'http://some.thing' или window.location.reload()).
Также мне нужно, чтобы для пользователя не отображалось окно запроса (например, «Вы уверены, что хотите покинуть эту страницу? ')

Я искал решения и похоже, что все меняется. В одних статьях написано, что переопределить window.location можно, в других - что нельзя. Поэтому я не уверен в текущей ситуации для такой проблемы.

Я пытался:
- переопределить объект window.location, но похоже, что это невозможно (как упоминалось здесь https://stackoverflow.com/a/7990537 и как я пробовал в Chrome и FF).
- использовать событие onbeforeunload. Таким образом можно предотвратить перезагрузку страницы, но для пользователя отображается окно подсказки.

Есть ли способ предотвратить перенаправление/перезагрузку javascript без какого-либо окна подсказки?


person BuskaMuza    schedule 31.05.2012    source источник
comment
Вызвано ли перенаправление/перезагрузка javascript взаимодействием с пользователем? Если это так, то предотвращение этого без предварительного уведомления может сбить с толку/разочаровать пользователя, поскольку результат их клика будет не таким, как ожидалось. Если ваш вариант использования не включает пользовательский ввод, то, конечно, мой комментарий не применяется;)   -  person Brad Barrow    schedule 31.05.2012
comment
Нет. Это например редирект на другую страницу через 5 секунд.   -  person BuskaMuza    schedule 31.05.2012
comment
Это для страницы, где вы контролируете источник?   -  person nnnnnn    schedule 31.05.2012
comment
Страница может включать некоторый основной код (который я могу контролировать) и некоторый пользовательский код (который я не могу редактировать и не знаю, что там может быть). Так что если вы говорите об изменении самого кода редиректа, я не могу этого сделать.   -  person BuskaMuza    schedule 31.05.2012
comment
Но в stacjoverflow вы не можете выполнить этот window.location = hello new url, не работает и снова перезагрузите stackoverflow, как они это делают?   -  person Softsofter    schedule 09.01.2019