[英]if i make a mistake in code and cause an infinite loop in javascript and it keeps on calling alert(), is there a way out to stop the loop?
有時我使用調試代碼來警告javascript中的某些內容(例如,匹配正則表達式中的內容),但忘記修飾符並且警報處於無限循環中(或者如果循環匹配模式300次)。 如果使用Firefox,則警報會一直顯示,甚至無法關閉選項卡,窗口或應用程序。
如果我強行退出,它將關閉所有標簽甚至Firefox的其他窗口...實際上有一種方法可以更優雅地停止循環嗎?
最簡潔的答案是不。
這是使用Firebug和console.log函數的一個很好的理由。 具有諷刺意味的是,這將導致“停止腳本,因為它正在逃避對話”,在某些情況下不顯示,這意味着你現在回到了現在的位置。
Chrome和Opera都有此功能。 IE沒有,Apple Safari也沒有。
不是原生的解決方案,但你可以試試這個油脂猴子腳本: http : //www.tumuski.com/2008/05/javascript-alert-cancel-button/
此外,您可以簡單地覆蓋警報功能以使用確認對話框,並在取消確認時停止顯示警報:
var displayAlerts = true;
然后:
function alert(msg) {
if (displayAlerts) {
if (!confirm(msg)) {
displayAlerts = false;
}
}
}
谷歌瀏覽器允許您阻止顯示其他警報。
我寫了一個Firefox擴展來解決這個問題。
安裝Greasemonkey並轉到此頁面: http : //www.tumuski.com/2008/05/javascript-alert-cancel-button/
為greasemonkey安裝此腳本后,任何警告對話框窗口都會有一個取消按鈕,它將停止javascript。
[在IE 11上測試]如果你需要關閉網頁瀏覽器並且不想出於任何原因ctrl-alt-del(在我的情況下,我的錯誤的javascript無限警報循環在citrix上運行,這將自動重新加載我的上一個會話之后來自緩存的ctrl-alt-del,我無法清除)
你可以通過按住alt-F4並發送垃圾郵件 (關閉瀏覽器窗口)來解決問題。
這非常快...... alt-F4非常快地關閉警報框,你會注意到瀏覽器頂部的X按鈕閃爍。 這為您提供了非常小的時間窗口,您可以在警報之間關閉它。
注意:如果您打開了多個選項卡,則需要先從屏幕底部控制欄上的圖標將其關閉,因為“關閉所有選項卡消息”會產生干擾。
沒門。 好的是,雖然大多數瀏覽器都有無限的遞歸保護,但這是offtopic。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.