Я разрабатываю переднюю часть веб-приложения с помощью среды IDE NetBeans 7.0.1. Недавно у меня была очень неприятная ошибка, которую я наконец исправил.
Скажем, у меня есть код
var element = '<input size="3" id="foo" name="elements[foo][0]" />';
$('#bar').append(element);
Я заметил, что что-то пошло не так, когда я увидел, что атрибут size
не работает в Chrome (не проверен в других браузерах). Когда я открыл этот элемент в Inspector, он был интерпретирован как нечто вроде
<input id=""3"" name=""elements[foo][0]""
size=""foo"" />
Это было довольно странно. После ручной переименования символа element
string-in-character ошибка исчезла. Когда я отказался от этого изменения, я заметил, что Netbeans предупредил меня о некоторых символах Unicode в моем старом коде. Это было \u200b
- пробелы нулевой ширины после каждого '=', между '] [' и в конце строки. Таким образом, строка появилась нормально, потому что пространства с нулевой шириной не были отображены, но после выхода из нее моя строка была
'<input size=\u200b"3" id=\u200b"foo" name=\u200b"elements[foo]\u200b[0]" />\u200b'
Теперь, где, черт возьми, я их получил?
Я не уверен, где я скопировал код element
, но это определенно одно из следующего:
- Другая панель редактора Netbeans с файлом шаблона HTML;
- Google Chrome Inspector, действие "Копировать как HTML";
- Страница просмотра исходного кода Google Chrome (очень сомнительно).
Но я не могу воспроизвести ошибку ни с чем.
Я использую Netbeans 7.0.1 и Google Chrome 13.0 под Windows 7. Нет клавиатурных переключателей или чего-то вроде этого. Кроме того, я использую Git для управления версиями, но я не вытащил этот код, поэтому очень маловероятно, чтобы Git виноват. Это не может быть глупой шуткой моих коллег, потому что они довольно хорошо воспитаны.
Любые предложения, которые испортили мой код?