javascript - 如何使 Chrome 扩展程序的未捕获异常处理程序工作(由于 CORS 保护而不起作用)

标签 javascript google-chrome google-chrome-extension cors

我设置了未捕获的异常处理程序 window.error = function(message, ...) {...} Chrome 扩展的内容脚本 JS 文件之一中的处理程序。目的是捕获扩展中的所有此类错误(它的内容脚本 Javascript 文件)并将它们报告给开发人员。但是我总是收到消息“脚本错误”(发生在第 1 行),而不是真正的错误消息和堆栈跟踪。我怎样才能得到真正的错误和堆栈跟踪?

这是我当时的发现。这是因为 CORS 保护,如果发生错误的脚本与加载脚本的文档不是来自同一源,则默认情况下会清理错误的内容。 Chrome 自版本 30 开始支持绕过此保护("if the script is served with appropriate 'Access-Control-Allow-Origin' headers that grant the loading document access to the script's contents")。但是,如果内容脚本不是由 HTTP 提供而是在扩展的 list 中指定的,我该如何应用该绕过?出于同样的原因,我不能使用 <script> 的 crossorigin 属性。 .

我还怀疑它可以通过内容安全警察(content_security_policy list 字段)来完成,但我还不能。

我知道可以通过阅读 Chrome 资源找到答案,但我希望有人会告诉我,我不需要阅读它们。

最佳答案

除了等待 http://crbug.com/225513 之外别无他法待修复

关于javascript - 如何使 Chrome 扩展程序的未捕获异常处理程序工作(由于 CORS 保护而不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934511/

相关文章:

html - 如何从 html 链接到 google chrome 下载页面?

javascript - 将外部页面的文本片段获取到 Google Chrome 扩展程序中

javascript - 为什么本地存储在javascript之后最后保存

javascript - 解析云 : Remove installation

javascript - 为 Node.js 创建 "controller"脚本

javascript - 获取zindex javascript chrome

javascript - 如何停止 chrome 扩展程序?

javascript - JavaScript 中的 thenable 对象如何被拒绝?

javascript - 如何使用 React-router 创建包含可路由项目的列表?

google-chrome - 通过 DevTools 协议(protocol)从 Chromium 通信 "out"