Это не помогает, но усугубляет проблему.
Особенно пагубно и уродливо, если включен javascript:
<script>
setInterval("alert('irritate')",10)
</script>
или
<script>
(function(){(function r(){alert('irritate');setTimeout(r,10)})()})()
</script>
хотя это можно остановить (и все будущие тайм-ауты) с помощью:
javascript:setTimeout=function(){}
, возможно, как URI закладки, при условии, что ее можно будет щелкнуть достаточно быстро.
Однако
setInterval("alert('irritate')",10)
может быть остановлено только с помощью
javascript:setInterval=function(){}
ДО запуска скрипта.
Удачи вам:
<script>
(function(){(function r(){alert('irritate');r()})()})()
</script>
или даже проще
<script>
( function r(){alert('irritate');r()} ) ()
</script>
Установка alert=function(){}
остановит все сообщения, но скрипт и его рекурсия r
не остановятся до тех пор, пока не истечет SO или системное время.Кроме того, r
не входит в глобальную среду, поэтому r=function(){}
неэффективен.
Некоторым версиям FF требуется интересное решение, найденное в SO, если ответ alert
является обязательным, для уничтожения надоедливой страницыне убивая браузер и другие открытые вкладки, используя ctrl-F4
, чтобы закрыть вкладку страницы-нарушителя.Чтобы помочь ручному рефлексу и ловкости, необходимым для того, чтобы сделать это достаточно быстро, ctrl-Enter
используется для ответа на приглашение, а при нажатии ctrl-Enter
набирается F4
.