JavaScript错误(Uncaught SyntaxError:意外的输入结束)

我有一些JavaScript代码,工作在FireFox,但不是在Chrome或IE。

在Chrome JS控制台,我得到以下错误:

“未捕获的语法错误:输入的意外结束”。

我使用的JavaScript代码是:

<script>
$(function() {
$("#mewlyDiagnosed").hover(function() {
$("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
}, function() {
$("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
});
</script>

它说错误是在最后一行});

913463 次浏览

添加第二个});

当正确缩进时,代码可以读取

$(function() {
$("#mewlyDiagnosed").hover(function() {
$("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
}, function() {
$("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
});
MISSING!

你从未关闭外层$(function() {

稍微格式化一下你的代码,你只关闭了内部的hover函数。你没有关闭外部部分,标记如下:

$(// missing closing)
function() { // missing closing }
$("#mewlyDiagnosed").hover(
function() {
$("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
},
function() {
$("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
});

在我的情况下,它最终是一个简单的双引号问题在我的书签,记住只使用单引号bookmarklet。万一这能帮到谁呢。

http://jsbeautifier.org/有助于缩进压缩的JS代码。

另外,对于谷歌Chrome,你可以使用“pretty print”。请看下面的例子截图,从我的浏览器中很好地缩进了堆栈溢出的jquery.min.js:)

enter image description here

在我的情况下,我试图解析一个空JSON:

JSON.parse(stringifiedJSON);

换句话说,事情是这样的:

JSON.parse("");

当我试图编写javascript bookmarklet时,我得到了这个错误。我不知道是什么引起的。但最终我尝试了URL编码bookmarklet,通过以下网站:http://mrcoles.com/bookmarklet/,然后错误消失了,所以它一定是javascript代码中的某些字符被解释为特殊的URL控制字符的问题。

当试图解析一个空JSON时,这个错误主要是由空返回的ajax调用引起的。

如果返回的数据为空,则解决此测试

$.ajax({
url: url,
type: "get",
dataType: "json",
success: function (response) {


if(response.data.length == 0){
// EMPTY
}else{
var obj =jQuery.parseJSON(response.data);
console.log(obj);
}
}
});

我得到这个是因为我在添加到JS的文件中有一个注释,这对于正在发生的事情来说是非常尴尬的原因——尽管当单击预渲染的VM文件并捕捉到错误时,你会发现错误到底是什么,在我的情况下,它只是取消注释我正在使用的一些代码。

在我的情况下,这是由一个锚的javascript:void(0)中缺少(0)引起的。

我还得到了这个指向页面上最后一个脚本块末尾的错误,后来才意识到这个错误实际上是单击了带有onclick="pagename"而不是onclick="window.location='pagename'"的元素。它并不总是缺少一个括号!

我认为这可能是任何javascript错误/输入错误在你的应用程序。 我尝试删除一个又一个文件内容,最后发现打字错误