内联javascript stacktrace:比@ <anonymous> </anonymous>更好的起源

时间:2014-12-18 19:04:18

标签: javascript google-chrome-extension

我正在开发Chrome扩展程序。为了内容安全的目的,我需要将Javsacript作为内联脚本附加。现在的问题是,因为脚本是内联的,所以stacktrace将@显示为源,而不是文件名:

ReferenceError: asdf is not defined
fetchContactByEmail@<anonymous>:5439:1

我需要区分堆栈跟踪中调用者的来源,以判断它是否来自我的脚本。有没有办法告诉内联脚本的来源?

(PS我正在尝试解决的问题是:可能有多个扩展将脚本注入同一页面,并且它们会覆盖Array.prototype方法。我想设置一个开关来检查调用者是否是我的脚本,然后执行我的函数;如果调用者是其他扩展的脚本,则执行他们的函数。)

1 个答案:

答案 0 :(得分:3)

在代码之前或之后插入以下代码段:

//# sourceURL=name-of-script.js

现在,只要您的代码抛出错误,您就会看到&#34; name-of-script.js&#34;而不是<anonymous>。此功能是源地图的一部分,您可以在Chrome devtools documentation中阅读有关此功能的更多信息。