Ошибка JavaScript (Uncaught SyntaxError: Неожиданный конец ввода) - PullRequest
186 голосов
/ 21 октября 2010

У меня есть некоторый код JavaScript, который работает в FireFox, но не в Chrome или IE.

В консоли Chrome JS я получаю следующую ошибку:

"Uncaught SyntaxError: Неожиданный конец ввода".

Код JavaScript, которым я являюсьиспользуется:

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

Это говорит о том, что ошибка находится в последней строке, которая });

Ответы [ 10 ]

368 голосов
/ 21 октября 2010

Добавить секунду });.

При правильном отступе ваш код будет выглядеть так:

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

Вы никогда не закрывали внешнюю $(function() {.

86 голосов
/ 29 мая 2014

В моем случае я пытался разобрать пустой JSON:

JSON.parse(stringifiedJSON);

Другими словами, произошло следующее:

JSON.parse("");
36 голосов
/ 30 июня 2013

http://jsbeautifier.org/ полезно для отступа вашего минимизированного кода JS.

Также, с Google Chrome вы можете использовать "симпатичную печать". Посмотрите на приведенный ниже скриншот, где показано, что jquery.min.js из переполнения стека имеет хороший отступ прямо из моего браузера:)

enter image description here

14 голосов
/ 21 октября 2010

Немного отформатировав код, вы только закрыли функцию внутреннего наведения.Вы не закрыли внешние части, отмеченные ниже ....

$(// missing closing)
 function() { // missing closing }
     $("#mewlyDiagnosed").hover(
        function() {
            $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
        }, 
        function() {
            $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
        });
5 голосов
/ 20 сентября 2012

В моем случае это была простая двойная кавычка в моей букмарклете , не забывайте использовать только одинарные кавычки в букмарклетах.На всякий случай это кому-то поможет.

3 голосов
/ 30 декабря 2015

Эта ошибка в основном вызвана пустыми возвращенными вызовами ajax при попытке анализа пустого Json.

Чтобы решить этот тест, если возвращенные данные пусты

           $.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 голосов
/ 27 октября 2014

Я получил эту ошибку, когда пытался написать букмарклет javascript.Я не мог понять, что вызвало это.Но в конце концов я попробовал URL-кодировку букмарклета через следующий веб-сайт: http://mrcoles.com/bookmarklet/, и затем ошибка исчезла, поэтому, возможно, возникла проблема с определенными символами в коде JavaScript, которые интерпретировались как специальные символы управления URL-адресами.1003 *

0 голосов
/ 09 июля 2019

Я также получил эту ошибку, указывающую на конец последнего блока скрипта на странице, только для того, чтобы понять, что на самом деле ошибка заключалась в нажатии на элемент с onclick="pagename" вместо onclick="window.location='pagename'".Это не всегда пропущенная скобка!

0 голосов
/ 04 марта 2018

В моем случае это было вызвано отсутствием (0) в javascript:void(0) в якоре.

0 голосов
/ 20 февраля 2017

Я получил это, так как у меня был комментарий в файле, который я добавлял в свой JS, действительно неловкая причина того, что происходило - хотя при нажатии на файл VM, который предварительно отрендерен и ловит ошибку, вы ' я выясню, что именно было за ошибка, в моем случае это просто раскомментировал какой-то код, который я использовал.

...