是什么导致我在Firefox开发人员控制台中看到的语法错误?

时间:2014-05-28 06:37:48

标签: javascript firefox firefox-developer-tools

附件是开发者控制台的屏幕截图。我在闭包定义中看到了语法错误。

JavaScript syntax error

我有一个JavaScript文件,它具有以下功能。我正在从另一个函数加载JavaScript文件并从中调用sampleFunction()

var sampleFuntion=function(obj){
    //Statement here;
};

但Firefox显示第一行的语法错误,即函数声明/定义。

我在Windows 7上使用Mozilla Firefox 29.0.1。

代码中的实际错误是什么?

3 个答案:

答案 0 :(得分:2)

由于指示的脚本行不包含任何视觉语法错误,因此该问题可能是该行中的一个看不见的非法字符,例如一个zero-width space。在这种情况下,只需重写您的函数并确保将所有内容替换为文件的开头。

或者在控制台中错误地显示行号,错误实际上是其他地方。要测试,只需从脚本中删除该函数,然后查看第一行是否仍然显示语法错误。如果是这样,您可以删除脚本的其他部分,并在错误消失时逐步检查。

检查Firefox中是否存在错误的另一种方法是使用其他浏览器确认该错误,即查看它是否也显示在其他DevTools控制台的同一行。如果不是,您应create a new Firefox profile尝试验证错误消息是否实际来自您的代码。如果新配置文件没有显示错误,则错误是由某些加载项或插件引起的。

关于此的一点注意事项:

Firebug大部分时间也提供有关发生语法错误的列的信息并指出确切的位置:

Syntax error with column displayed within Firebug

答案 1 :(得分:1)

这是由于“内容类型”/“ MIME类型”(或媒体类型)[内容& Mime类型,两者都不完全相同]在HTTP请求的响应标头中返回,以及从文件加载的内容类型(在本例中,其“ JavaScript ”内容)。如果未提及MIME类型,默认情况下,Firefox将“内容类型”假设为“ application / xml ”, 这不是正确的类型。

可以使用以下方式验证默认内容类型:

  

yourXHRObject.getResponseHeader( '的Content-Type');

因此,Firefox Dev Tool会抛出错误(是的,FF没有提供任何线索!!!)

解决方案:

  

yourXHRObject.overrideMimeType( '的文本/ JavaScript的');或yourXHRObject.overrideMimeType(' application / javascript ')

this GitHub线程中讨论,在发送请求之前。即使将“text / plain”发送到overrideMimeType(),错误也会消失。但是,从技术上讲,上述之一比“text / plain”更容易。

答案 2 :(得分:-1)

I can find within the Firefox codebase来自XML解析器的唯一“格式不正确”的实例...请检查您是否正确包含了脚本。

“第1行”也可能是指例如从constant.js中完成的eval或innerHTML集合或类似的东西。