我設置了未擴展異常處理程序window.error = function(message, ...) {...}
處理程序在Chrome擴展的內容腳本JS文件之一中。目的是捕捉擴展內部的所有這些錯誤(內容腳本的Javascript文件)並將其報告給開發人員。但不是真正的錯誤消息和堆棧跟蹤,我總是會收到消息「腳本錯誤」(發生在第1行)。我怎樣才能得到真正的錯誤和堆棧跟蹤?如何使Chrome擴展的未捕獲異常處理程序(由於CORS保護而不起作用)
這是我發現那一刻。這是因爲CORS保護,默認情況下,如果發生錯誤的腳本與加載腳本的文檔來自不同的源,則會清除錯誤的內容。自30版以來,Chrome支持繞過此保護("if the script is served with appropriate 'Access-Control-Allow-Origin' headers that grant the loading document access to the script's contents")。但是如果內容腳本不是由HTTP提供服務,而是在擴展的清單中指定的,我怎麼能應用繞過?出於同樣的原因,我不能使用<script>
的crossorigin屬性。
另外我懷疑可以通過內容安全警察(content_security_policy
清單字段)完成,但我還沒有。
我意識到可以通過閱讀鉻來源找到答案,但我希望有人會告訴我,我不會需要閱讀它們。
你想看到從另一個擴展腳本或從對網頁腳本來錯誤?如果是擴展腳本,它是否與'window.error'內容腳本一起是另一個內容腳本? – apsillers 2014-11-14 16:34:46
@arspillers目的是捕捉擴展中的所有這些錯誤(內容腳本的Javascript文件) – boqapt 2014-11-14 16:41:48