Haml Coffee ie8 error
В настоящее время я использую haml_coffee_assets в проекте с магистралью. Все браузеры, кажется, работают довольно хорошо........ кроме IE8.
Ошибка, которую я получаю: Expected ']' in regular expression
строка, на которую он ссылается, следующая:
HAML.findAndPreserve = function(text) {
var tags;
tags = 'textarea,pre'.split(',').join('|');
// **THE LINE BELOW**
return text = text.replace(RegExp("<(" + tags + ")>([^]*?)<\\/\\1>", "g"), function(str, tag, content) {
return "<" + tag + ">" + (window.HAML.preserve(content)) + "</" + tag + ">";
});
};
Это предотвращает компиляцию всей страницы при загрузке. Связанные с данными div полностью пусты, но все остальные статические элементы загружаются нормально.
1 ответ
Рассматриваемый RegExp предназначен для сохранения новых строк в определенных тегах путем преобразования их в формат HTML-сущности, поэтому
<pre>Bar
Baz</pre>
становится
<pre>Bar
Baz</pre>
Поскольку вы не можете сделать так, чтобы точки совпадали с новыми строками в JavaScript, вы можете использовать пустой согласованный символьный класс, чтобы соответствовать всему. Поскольку мы в браузере, вы можете легко перезаписать HAML.findAndPreserve
проверить альтернативные подходы. У меня нет проблем с его изменением для IE8, но я отказываюсь устанавливать виртуальную машину только для того, чтобы протестировать ее:-)
Альтернатива [^]
является [\s\S]
и я успешно протестировал его в Node.js, изменив соответствующий код в Haml Coffee, и все спецификации проходят нормально. Можете ли вы попробовать это в IE8 и сообщить, если это верно и работает? Спасибо!