Як спыніць выкананне JavaScript? І ўсё таймеры? (Як спыніць функцыю з апытання - ці monkeypatching яго)

Я хачу, каб спыніць скрыпт ад выканання, падобна таму, што клавіша Esc робіць у Firefox. Ён спыняе ўсе Javascript запуску на гэтай старонцы, а таксама ўсе GIF-анімацыі.

Ці ёсць функцыя, якую я мог бы назваць, які б спыніць усе?

1
Бо частка JavaScript, які я не маю ніякага кантролю над апытвае сервер, які робіць Chrome флэш/змяніць кнопку перазагрузкі, якая робіць для раздражняльных карыстальнікаў. Я б хацеў, каб адключыць апытанне, бо яго не трэба пасля таго, як <�я> мой </я> код працуе. Ім не дазваляецца змяняць/сэнсарную код па-за майго модуля. Так. Кіраванне на яго лепшым.
дададзена аўтар rapadura, крыніца
Навошта вы гэта робіце?
дададзена аўтар Andre, крыніца

2 адказы

У залежнасці ад таго, як арганізаваны модуль крыўдзячы, магчыма, вы можаце малпа патч без неабходнасці ўносіць змены ў зыходны код.

Напрыклад, калі функцыя раздражняльным апытання з'яўляецца глабальнай або прасторай імёнаў можна паспрабаваць замяніць яго бескарысным шлейф:

//save the old version of the function, in case
//we need to restore it afterwards
var nasty_function = His.Namespaced.Evil.func;

//put our own stub in place
His.Namespaced.Evil.func = function(what, args, it , should, receive){
    return somthing_that_signals_a_failed_poll;
}
2
дададзена
Ах вядома! Дзякуючы. Мне падабаецца ваш стыль missingno.
дададзена аўтар rapadura, крыніца

Не, нічога падобнага. І няма таксама ніякай рэальнай прычыны для гэтага: вы пішаце код, вы можаце зрабіць гэта спыніць рабіць рэчы, калі вы хочаце.

Плюс: калі б такая функцыя, якая спыніла <�моцны> ўся дзейнасць JS ... як бы вы зрабіць гэта пачаць зноў?

2
дададзена
То добрае пытанне, але я Wouldnt. Проста топ рыса. Firefox можа гэта зрабіць, іншыя браўзэры павінны таксама.
дададзена аўтар rapadura, крыніца