Это должно быть легко (по крайней мере, похоже, что у кого-то еще нет аналогичной проблемы), но я не вижу, где он ломается.Проблема с браузером при рендеринге WMD с Showdown.js?
Я сохраняю Markdown'ed текст в базе данных, которая вводится на странице моего приложения. Текст вводится с использованием WMD, и просмотр в прямом эфире выглядит корректно.
На другой странице я извлекаю текст уценки и используя Showdown.js, чтобы преобразовать его обратно в HTML-клиентскую сторону для отображения.
Скажем, у меня есть этот текст:
The quick **brown** fox jumped over the *lazy* dogs.
1. one
1. two
4. three
17. four
Я использую этот фрагмент Javascript в моем JQuery документ, готовый событие, чтобы преобразовать его:
var sd = new Attacklab.showdown.converter();
$(".ClassOfThingsIWantConverted").each(function() {
this.innerHTML = sd.makeHtml($(this).html());
}
Я подозреваю, что это где моя проблема есть, но это почти работает.
В FireFox, я получаю то, что я ожидал:
Быстрого коричневого лис перепрыгнул через ленивых собак.
- один
- два
- три
- четыре
Но в IE (7 и 6), я получаю это:
Быстрый коричневый лиса перепрыгнула через ленивый собаки. 1. один 1. два 4. три 17. четыре
Так что, по-видимому, IE снимает разрывы в моем коде кода и просто преобразует их в пробелы. Когда я делаю источник исходного кода (до запуска скрипта), разрывы находятся внутри контейнера DIV.
Что я делаю неправильно?
UPDATE
Это вызвано/InnerText «причуда» IE innerHTML и я уже упоминал, что этот на странице ASP.NET, используя данные, связанные элементы управления - там, очевидно, много разных обходные пути в противном случае.
@CMPalmer - Отлично. Приятно принять ваш собственный ответ. +1 –
this.html должно быть $ (this) .html – ebryn
Ничего себе, что было досадно, пока я не нашел этот ответ. Эрик прав, и если вы просто хотите изменить один элемент, то будет работать примерно так: $ ("# adminContent"). Html (sd.makeHtml ($ ("pre", $ ("# adminContent")).текст())); – Jedidja