【发布时间】:2016-06-27 02:48:09
【问题描述】:
我有一些在特定 javascript 文件中触发的 console.log 打印。该文件知道其他文件,并在 console.log 打印中引用这些文件名。我想知道是否有一种方法可以在同一个 console.log 打印输出中打印指向该源文件的某种链接,并希望单击该链接会在开发工具中打开该文件的源视图?
【问题讨论】:
标签: javascript google-chrome-devtools
我有一些在特定 javascript 文件中触发的 console.log 打印。该文件知道其他文件,并在 console.log 打印中引用这些文件名。我想知道是否有一种方法可以在同一个 console.log 打印输出中打印指向该源文件的某种链接,并希望单击该链接会在开发工具中打开该文件的源视图?
【问题讨论】:
标签: javascript google-chrome-devtools
通过尝试@miir 的解决方案发现你可以:
1) 链接到文件,只要你输入完整路径
console.log("http://localhost:8000/myapp/path/to/file.js")
console.log(document.currentScript.src); // if executed from within a script
2) 手动链接到文件+行+字符
const line = "83";
const character = "2";
console.log(document.currentScript.src + ":" + line + ":" + character);
3) 动态链接到文件+行+字符
const level = 1; // 1 is last stack trace, you can go up the calling functions
console.log(new Error().stack.split("\n")[level].match(/http[^\)]+/)[0]);
没有什么不能从接受的答案中弄清楚,但也许它可以帮助新人。
【讨论】:
在给出这个答案的时候,没有直接的方法可以做到这一点。
但是,@Emissary 在下面的评论中指出,访问文件链接的解决方法是利用 Error 对象的能力。
console.log(new Error().stack)
【讨论】:
Error 对象的堆栈跟踪来解决它。 例如原始的,console.log(new Error().stack) - 或者通过查看更多的robust wrapper in this answer。