J'ai du code JavaScript qui fonctionne dans FireFox mais pas dans Chrome ou IE.
Dans la console Chrome JS, le message d'erreur suivant s'affiche:
"Uncaught SyntaxError: Fin d’entrée inattendue".
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 dit que l'erreur est sur la dernière ligne qui est });
Ajoutez un deuxième });
.
Lorsqu'il est correctement mis en retrait, 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é la $(function() {
extérieure.
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("");
http://jsbeautifier.org/ est utile pour mettre en retrait votre code JS minifié.
De plus, avec Google Chrome, vous pouvez utiliser "joli imprimé". Voir la capture d'écran ci-dessous illustrant jquery.min.js
de Stack Overflow bien en retrait depuis mon navigateur :)
En formatant un peu votre code, vous n’avez fermé que la fonction de survol interne. 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"});
});
Dans mon cas, il s’agissait d’un problème simple guillemets doubles dans mon bookmarklet, n’utilisez que des guillemets simples sur des bookmarklets. Juste au cas où cela aiderait quelqu'un.
Cette erreur est principalement due aux appels ajax
renvoyés vides lors de la tentative d'analyse d'une variable Json
vide.
Pour résoudre ce test si les données renvoyé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);
}
}
});
J'ai eu cette erreur quand j'essayais d'écrire un bookmarklet javascript. Je ne pouvais pas comprendre ce qui le causait. Mais finalement, j'ai essayé d'encoder le bookmarklet via l'URL, via le site Web suivant: http://mrcoles.com/bookmarklet/ puis l'erreur a disparu, un problème avec certains caractères du code JavaScript interprétés comme des caractères de contrôle d'URL spéciaux.
Je l’ai eu depuis que j’avais un commentaire dans un fichier que j’ajoutais à mon JS, une raison vraiment délicate de ce qui se passait - bien que lorsque vous cliquez sur le fichier VM
Découvrez exactement quelle était l'erreur. Dans mon cas, il s'agissait simplement de supprimer le code que j'utilisais.
Dans mon cas, cela est dû à un (0)
manquant dans javascript:void(0)
dans une ancre.
J'ai également eu cette erreur pointant vers la fin du dernier bloc de script sur une page, pour réaliser que l'erreur était en fait de cliquer sur un élément avec un onclick="pagename"
au lieu de onclick="window.location='pagename'"
. Ce n'est pas toujours un support manquant!