Подтвердить что ты не робот

Неожиданный идентификатор javascript

Я пытаюсь сжать свой код JavaScript, чтобы получить меньше трафика на моем сайте. Он работает нормально, но теперь я столкнулся с ошибкой, которую не могу решить.

Я превратил свою функцию ajax в одну строку:

function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById("content").innerHTML=xmlhttp.responseText;}}xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send();}

Но консоль chrome сообщает мне, что в этой строке есть неожиданный идентификатор. Firefox говорит, что в этой строке отсутствует точка с запятой.

Я пытался выяснить, что не так, но я не могу найти ошибку, может ли кто-нибудь помочь мне с этим?

4b9b3361

Ответ 1

Да, у вас слишком много }. В любом случае, сжатие себя приводит к ошибкам.

function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("content").innerHTML = xmlhttp.responseText;
    }
} // <-- end function?
xmlhttp.open("GET", "data/" + id + ".html", true);
xmlhttp.send();
}

Вместо этого используйте Closure Compiler.

Ответ 2

Я рекомендую использовать http://jsbeautifier.org/ - если вы вставляете фрагмент кода в него и нажимаете beautify, ошибка сразу же видна.

Ответ 3

Либо удалить один} из конца responseText;}}, либо из конца строки

Ответ 4

В таких случаях вам лучше повторить добавление пробелов, что делает очевидную синтаксическую ошибку:

function(){
  if(xmlhttp.readyState==4&&xmlhttp.status==200){
    document.getElementById("content").innerHTML=xmlhttp.responseText;
  }
}
xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send();
}

Там} слишком много. Кроме того, после закрытия} функции вы должны добавить a; перед xmlhttp.open()

И, наконец, я не вижу, что там делает анонимная функция. Он никогда не выполнялся или не упоминался. Вы уверены, что вставили правильный код?

Ответ 5

Похоже, в коде есть лишняя фигурная скобка.

function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("content").innerHTML = xmlhttp.responseText;
    }
// extra bracket }
xmlhttp.open("GET", "data/" + id + ".html", true);
xmlhttp.send();
}