Errore JavaScript (Uncaught SyntaxError: End of input inaspettato)

Ho qualche codice JavaScript che funziona in FireFox ma non in Chrome o IE.

Nella console di Chrome JS ottengo il seguente errore:

“Uncaught SyntaxError: Unexpected end of input”.

Il codice JavaScript che sto usando è:

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

Dice che l’errore è sull’ultima riga che è});

Aggiungere un secondo }); .

Se correttamente rientrato, il tuo codice legge

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

Non hai mai chiuso l’esterno $(function() { .

Nel mio caso, stavo cercando di analizzare un JSON vuoto:

 JSON.parse(stringifiedJSON); 

In altre parole, quello che è successo è stato il seguente:

 JSON.parse(""); 

http://jsbeautifier.org/ è utile per indentare il tuo codice JS minificato.

Inoltre, con Google Chrome puoi utilizzare “pretty print”. Vedi lo screenshot di esempio qui sotto che mostra jquery.min.js da Stack Overflow ben rientrato direttamente dal mio browser 🙂

inserisci la descrizione dell'immagine qui

Formattando il tuo codice un po ‘, hai solo chiuso la funzione hover interna. Non hai chiuso le parti esterne, contrassegnate sotto ….

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

Nel mio caso, è finito per essere un semplice problema di doppia citazione nel mio bookmarklet , ricorda di usare solo le virgolette singole sui bookmarklets. Nel caso in cui questo aiuti qualcuno.

Questo errore è causato principalmente da chiamate ajax restituite vuote, quando si tenta di analizzare un Json vuoto.

Per risolvere questo test se i dati restituiti sono vuoti

  $.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); } } }); 

Ho ricevuto questo errore quando stavo cercando di scrivere un bookmarklet javascript. Non riuscivo a capire cosa lo stesse causando. Ma alla fine ho provato la codifica URL del bookmarklet, tramite il seguente sito web: http://mrcoles.com/bookmarklet/ e poi l’errore è andato via, quindi deve essere stato un problema con alcuni caratteri nel codice javascript interpretato come URL speciale caratteri di controllo.

Ho ottenuto questo dato che avevo un commento in un file che aggiungevo al mio JS, motivo davvero imbarazzante per quello che stava succedendo – anche se quando fai clic sul file VM che è pre-renderizzato e rileva l’errore, scoprirai cosa esattamente l’errore era, nel mio caso, era semplicemente una decompressione del codice che stavo usando.

Nel mio caso, è stato causato da un mancante (0) in javascript:void(0) in un’ancora.