2013-10-29 17 views
0

我有一個通用的錯誤處理函數,用於捕獲window.onerror,並且在代碼處於dev/staging模式時將屏幕上的錯誤顯示爲警報,或者在生產模式下通過ajax post記錄錯誤消息。這很好,我特別喜歡它爲測試人員或開發人員提供的警告,他們在編碼或測試時沒有碰到開發工具。我可以檢測Chrome是否有'暫停錯誤'或devtools從網站JavaScript打開? (用於錯誤處理)

但是,如果有人確實打開了devtools,我不想捕捉異常 - 我想用漂亮的鉻devtools來指出錯誤。

請注意,這是從網頁JavaScript,而不是從一個Chrome擴展(理想情況下)。在其他瀏覽器中,我很樂意始終顯示警報(即,如果不是chrome,則始終警報)。

所以,我可以之一:

一)檢測是否「暫停上的錯誤」是活動的?

b)檢測devtools是否打開?

c)也許我可以做一個chrome擴展來檢查devtools是否打開?

任何人都試過這樣的事情?

+1

有_was_ http://stackoverflow.com/q/7527442/139010/https://github.com/adamschwartz/chrome-inspector-detector –

+0

是啊,聽起來好像是用來工作,但不任何更多。我只是測試它,並確實console.profiles不再存在。沒關係,我意識到它並不那麼重要,因爲當我偶爾發現我的恐怖踢入時,它只是在我開始用devtools過去之後。 –

回答

1

我不認爲你可以。如果可以的話,這可能被認爲是一個安全漏洞。

但是,您是否意識到您可以通過設置開發工具來打破所有異常,從而有效地繞過您自己的頁面的錯誤處理代碼?轉到來源標籤並點擊暫停按鈕,直到它變成藍色。

Catch all errors

+0

噢,我很愚蠢!事實上,即使設置爲紫色,它首先會碰到devtools。在我繼續使用chrome devtools之後,它只進入我的onerror處理程序中 - 所以實際上這只是稍微惱人,但不是主要的。 –