Erreur JavaScript (Uncaught SyntaxError: fin inattendue de la saisie)

j'ai du code JavaScript qui fonctionne dans FireFox mais pas dans Chrome ou IE.

dans la Console Chrome JS j'obtiens l'erreur suivante:

"Uncaught SyntaxError: Unexpected end of input".

le code JavaScript que j'utilise est:

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

Il est dit que l'erreur est sur la dernière ligne qui est });

171
demandé sur Dyrandz Famador 2010-10-21 03:24:07

9 réponses

Ajouter un second }); .

correctement indenté, votre code se lit

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

vous n'avez jamais fermé l'extérieur $(function() { .

352
répondu SLaks 2010-10-20 23:27:29

dans mon cas, j'essayais d'analyser un JSON vide:

JSON.parse(stringifiedJSON);

en d'autres termes, ce qui s'est passé est le suivant:

JSON.parse("");
85
répondu falsarella 2014-05-29 17:31:12

http://jsbeautifier.org / est utile pour indenter votre code JS miniaturisé.

aussi, avec Google Chrome vous pouvez utiliser"pretty print". Voir l'exemple de capture d'écran ci-dessous montrant jquery.min.js de Stack Overflow joliment indented à droite de mon navigateur:)

enter image description here

35
répondu Hugo 2015-12-30 16:17:13

formater un peu votre code, vous avez seulement fermé la fonction interne de vol stationnaire. Vous n'avez pas fermé les parties extérieures, indiquées ci-dessous....

$(// missing closing)
 function() { // missing closing }
     $("#mewlyDiagnosed").hover(
        function() {
            $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
        }, 
        function() {
            $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
        });
14
répondu hvgotcodes 2015-12-30 16:19:46

dans mon cas, il a fini par être un simple double citation question dans mon bookmarklet , rappelez-vous seulement utiliser des citations simples sur bookmarklets. Juste au cas où cela aide quelqu'un.

5
répondu Yëco 2012-09-20 19:14:56

j'ai eu cette erreur quand j'ai essayé d'écrire un script javascript bookmarklet. Je ne pouvais pas comprendre ce qui était à l'origine. Mais finalement J'ai essayé URL encoding le bookmarklet, via le site Web suivant: http://mrcoles.com/bookmarklet / et puis l'erreur a disparu, il doit donc avoir été un problème avec certains caractères dans le code javascript étant interprété comme des caractères spéciaux de contrôle D'URL.

3
répondu user280109 2015-12-30 16:19:28

cette erreur est principalement causée par des appels ajax retournés et vides , lorsque l'on essaie d'analyser un appel Json vide .

pour résoudre ce test si les données retournées sont vides""

           $.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);
                         }
                     }
           });
3
répondu Jimmy Obonyo Abor 2015-12-30 17:41:19

j'ai obtenu ceci puisque j'ai eu un commentaire dans un dossier que j'ajoutais à mon JS, raison vraiment maladroite à ce qui se passait - cependant en cliquant sur le VM fichier qui est pré-rendu et attrape l'erreur, vous trouverez ce qu'était exactement l'erreur, dans mon cas il était tout simplement décommenter un code que j'ai utilisé.

0
répondu Jek 2017-02-20 05:48:03

dans mon cas, il a été causé par un (0) manquant dans javascript:void(0) dans une ancre.

0
répondu Sam 2018-03-04 20:53:10