查找函数调用的源代码行

时间:2010-05-19 15:28:10

标签: javascript

我已经构建了一个自定义日志记录实用程序,它显示了日志消息和日期时间。我想在源代码中添加一个调用函数的行号。

有没有办法确定特定javascript函数的哪一行HTML源被触发?

1 个答案:

答案 0 :(得分:7)

自己编写了一个日志库(log4javascript)后,我考虑过同样的问题,这是我的想法:

问题是,为了获得您想要的信息,您需要在相关行上创建的Error对象。在日志记录实用程序中创建Error只会直接为您提供日志记录实用程序代码中特定行的文件名和行号,而不是用于进行日志记录调用的代码行。我能想到的唯一解决方法是解析stack(或Opera中的Error属性)的message属性,这有几个问题:

  • 堆栈跟踪仅适用于Mozilla,最近的WebKit和Opera浏览器
  • 堆栈跟踪是一个不同浏览器的字符串,可能会在未来的浏览器中再次更改格式,从而破坏解析代码
  • 抛出Error并为每次日志调用解析其堆栈跟踪将增加显着的性能开销。

出于log4javascript的目的,我认为它不值得实现,但为了您自己的需要,您可能会认为这是值得的。