Что вызывает ошибку синтаксического анализа в JavaScript, когда исходный код вырезается и вставляется?

Я вырезал и вставил этот фрагмент кода SO из моего браузера в мой редактор (TextWrangler). Когда я загрузил страницу, она выдала мне ошибку синтаксиса / разбора (Safari).

Посмотрев на него примерно на 10 минут, я вручную набрал тот же самый код, и он выполнялся, как и ожидалось, без ошибок синтаксического анализа.

Любопытно, если кто-то еще получит такой же результат, и я предполагаю, что должны быть какие-то скрытые символы, которые портят синтаксис JavaScript..? Кто-нибудь знает, какие символы они, вероятно, будут (возвращает? Вкладки?) И как вы справляетесь с этим - это просто проблема редактора? Обычно у меня нет проблем с вырезанием и вставкой кода из окна браузера в редактор кода.

Месяцы спустя, и это все еще открытый вопрос.

Подобная вещь произошла снова, вырезать и вставить немного CSS в Vim:

.quiz-button-go:hover{
    color:#ddffff;
    background:#28e07e;
}

атрибут color не будет работать (он игнорируется в браузере), но фон РАБОТАЕТ. Однако, если я удаляю пробелы перед цветом и символом новой строки, то атрибут цвета работает!

Я обнаружил, что в Vim вы можете использовать : set list для отображения всех скрытых символов. Вот что я получаю:

44 .quiz-button-go:hover{$
45    $
46 ^Icolor:#ddffff;$
47 ^Ibackground:#28e07e;$                                                                                              
48 }$

Ничего необычного, верно?

Более того, если я попробую cat -vt filename, я получу это:

.quiz-button-go:hover{
^Icolor:#ddffff;
^Ibackground:#28e07e;
}

Опять же, если я просто удаляю пустое пространство перед "цветом", CSS работает отлично.

Любые другие идеи о том, как просмотреть скрытые символы будут оценены...

1 ответ

Не совсем уверен, но, вероятно, в коде, который вы скопировали и вставили, были скрытые нераспознанные символы. И это вызвало ошибку.

Другие вопросы по тегам