【问题标题】:Why are all JavaScript Console Logs and Errors showing Line 1 (Developer Tools)为什么所有 JavaScript 控制台日志和错误都显示第 1 行(开发人员工具)
【发布时间】:2018-03-17 02:15:42
【问题描述】:

我正在开发一个 Javascript 项目并使用 Chrome F12 开发人员工具进行调试。出于某种原因,所有 console.log 输出和错误消息都声称它们发生在我的 js 文件的 line 1 上。

...即,在每行右侧的控制台中,它显示myFile.js:1,即使第 1 行没有代码,并且代码显然在不同的行上运行。

这可能是什么原因?

【问题讨论】:

  • @plalx “即使第 1 行没有代码,而且代码显然在不同的行上运行。” :)
  • 您是否已在资源选项卡中验证您的脚本是否完全按照您的要求提供?如果服务器不小心为另一个页面提供服务,那么错误当然会出现在第一行。
  • 代码未压缩,在资源 - 框架 - 本地主机 - 脚本下显示良好。正在加载另一个脚本,其中的 console.log 消息显示准确的行号。
  • 你能更具体地说明你的意思是什么日志吗?我刚刚在该页面上获得 4 条日志:datadelivery.1.js:20submarine.js:107submarine.js:112submarine.js:90

标签: javascript google-chrome web-developer-toolbar


【解决方案1】:

显然其他人无法重现该问题(@Bergi),所以我只能想象 Chrome 以某种方式对文件有问题(已损坏?)。清除缓存没有帮助。

对我有用的变通解决方案是使用新文件

  1. 将文件名更改为 myFile_broken.js
  2. 创建一个新文件 myFile.js
  3. 将 myFile_broken.js 中的所有内容复制到 myFile.js

新的 js 文件现在显示正确的行号。尽管所有属性看起来相同并且所有文本内容都相同,但新文件比原始损坏的文件多出大约 100 个字节。

希望这对遇到相同问题的人有所帮助,并希望有朝一日能发现并解决根本问题。 (我在 Chrome 版本 34.0.1847.116 m 和 34.0.1847.131 m 中重现的错误)

【讨论】:

  • 谢谢!我有完全相同的问题,这解决了它。我敢打赌这是一个行尾问题。
  • 非常感谢!同样的问题,这解决了它。你只需要确保它是一个新的 js 文件。不要只是重命名旧文件
【解决方案2】:

这听起来像是行尾格式不正确的问题。这可能是您的编辑器使用的设置有问题,甚至可能是文件复制到服务器的方式有问题。但是无论出于何种原因,这些行都没有被识别为具有正确编码的结尾,因此它们都被视为一行。

【讨论】:

  • 你知道如何确定行尾的编码方式吗?
  • 我不知道检查编码的特定好方法,不。也许其他人会这样做。
【解决方案3】:

我最近遇到了一个 JS 错误,它在控制台中显示为第 1 行。事实证明,错误来自动态构造的onchange 属性内部。

由于错误出现在 onchange 属性内代码的第一“行”,并且没有与内联属性关联的文件名,Firefox 控制台感到困惑并显示错误来自第 1 行周围的 HTML 文件。 Chrome 控制台也将其显示为第 1 行,但单击错误会打开 onchange 处理程序而不是整个 html 文件,这就是我的想法。

【讨论】:

  • 我在 Chrome 和onchange 上遇到了同样的问题。 Chrome 开发工具只显示第 1 行,没有额外信息,但 Firefox 更精确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
  • 2014-02-20
  • 2016-06-04
  • 1970-01-01
相关资源
最近更新 更多