jHtmlArea не обрабатывает вставки новых строк

Я использую jHtmlArea для получения некоторого HTML-кода от пользователя, все хорошо, но когда я пытаюсь вставить текст с других веб-сайтов, он не декодирует новые строки в <br/> хотя они в коробке. Это происходит только с вставленным текстом, введенный вручную текст - это хорошо.

Поэтому, когда я хочу правильно отобразить текст, я использую что-то вроде:

@Html.Raw(Model.Text.Replace(Environment.NewLine, "<br/>"))

Но когда мне нужно повторно отобразить этот же текст в jHtmlArea, чтобы пользователь мог его редактировать, он теряет все новые строки. Кто-нибудь знает, как это исправить?

1 ответ

Решение

Я отказался от его использования, в конце концов, ошибок так много, что у меня нет времени на исправление. Во всяком случае, вот что я сделал, чтобы сохранить сохраненный текст для правильного отображения с новыми строками (пожалуйста, проверьте, хорош ли источник перед сохранением это в БД, если вы планируете использовать этот "взломать")

$(document).ready(function () {

//Initialize JhtmlArea 

    $(".editor").htmlarea({
        toolbar: [
                    ["bold", "italic", "underline"],
                    ["orderedList", "unorderedList"],
                    ["link", "unlink"],
                 ]
    });

//Set id (id will be same for all instances)

    $("iframe").attr("id", "editor");

// Style hack

$("#editor").contents().find('body').css({ "font-family": "MS Shell Dlg", "font-size": "12px", "font-weight": "100" });

// Finally to newlines hack

 var html = $(".editor").htmlarea("toHtmlString");

 // I would od something like $(".editor").htmlarea("html", "");
 // But there is a bug since this function calls "pastHtml" internally 
 // which is a typo instead of
 // "pasteHtml" so it won't work

 $("#editor").contents().find('body').html("");
 $(".editor").htmlarea("pasteHTML", html.replace(/\n/g, '<br\>'));


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