我在一个页面中发现了一个简单的JavaScript语法错误。
在Chrome开发者工具的控制台中,我收到了以下消息:
Uncaught SyntaxError: Unexpected token ( ... my_file.php(line 1799)
并且
Failed to load resource: net::ERR_CACHE_MISS
然而,我无法检查页面的源代码。它只会显示为空白或未加载。
我查看了资源选项卡、脚本文件并搜索受影响的行。第1799行有一条被注释掉的指令:
//location.reload();
这不合理,而且这不是我第一次在Chrome中遇到报告问题实际上出现在另一行或文件的情况。
在Firebug中没有任何报告,尽管javascript也无法工作。
我该尝试哪些步骤来找出错误的来源?
我已经尝试过:
- 刷新页面。众所周知,只有在第二次加载页面后脚本才会加载;
- 在源标签中检查文件的脚本 - 它显示为空白(无论我刷新多少次);
- 在资源标签中检查文件的脚本 - 错误显示在一个注释行中。第1799行显示为一条注释指令;
- 在Firebug中检查文件的脚本不显示任何内容。脚本或控制台中都没有错误。然而,javascript无法工作......
更新:我通过按下Ctrl + F5(加载并删除缓存)来解决了ERR_CACHE_MISS问题,正如此线程中建议的那样。
但是,语法错误(意外的闭合括号)仍然出现。有问题的行的位置会随着每个页面刷新而变化,但它们显示在看起来正常的行上。
更新#2:我解决了这个问题。我不得不检查所有脚本行并逐步修复语法错误(这些错误与Chrome提示的行不同)。
我仍然不知道为什么Firebug没有报告错误的行,或者为什么Chrome DevTools指向了错误的行。这是最令人沮丧的部分。