在 Webkit 浏览器的控制台中显示此错误的原因是众所周知的,并在错误文本中清楚地描述:
不安全的 JavaScript 尝试从 URL 为 www.example.com 的框架访问具有 URL iframed-content-example.com 的框架。域、协议和端口必须匹配。
但是对于具有许多可能触发错误的代码片段(广告、第三方库、特定于站点的脚本)的大型站点,错误消息对于跟踪和调试产生问题的代码行并没有太大帮助。发生跨域错误时,有什么方法可以触发堆栈跟踪?
在 Webkit 浏览器的控制台中显示此错误的原因是众所周知的,并在错误文本中清楚地描述:
不安全的 JavaScript 尝试从 URL 为 www.example.com 的框架访问具有 URL iframed-content-example.com 的框架。域、协议和端口必须匹配。
但是对于具有许多可能触发错误的代码片段(广告、第三方库、特定于站点的脚本)的大型站点,错误消息对于跟踪和调试产生问题的代码行并没有太大帮助。发生跨域错误时,有什么方法可以触发堆栈跟踪?
我将继续回答我自己的问题,并说这目前是不可能的。在检查了源代码和Chromium 的问题跟踪器之后,看起来缺少堆栈跟踪源于 Webkit 中的上游决定在不安全的跨帧访问尝试后不抛出异常。故意保持错误处理不透明的决定是基于安全原理做出的。
此处跟踪此问题:https ://code.google.com/p/chromium/issues/detail?id=88885 。
此特定错误消息显示最新版本的 Chromium 中的堆栈跟踪。