2013-10-05 4 views
4

Я хотел сохранить текст внутри контента, содержащего контент pre отформатирован. Как мне выслать pre формуляр текста, а не текст, где \n и \r не указаны?Сохранять новую строку при получении контентного текста div

$('#save').click(function(e) { 
    var id = "board_code"; 
    var ce = $("<pre />").html($("#" + id).html()); 
     if ($.browser.webkit) 
      ce.find("div").replaceWith(function() { return "\n" + this.innerHTML; }); 
     if ($.browser.msie) 
      ce.find("p").replaceWith(function() { return this.innerHTML + "<br>"; }); 
     if ($.browser.mozilla || $.browser.opera || $.browser.msie) 
      ce.find("br").replaceWith("\n"); 

     alert(ce.text()); 
}); 

http://jsfiddle.net/AD5q7/10/ это не работает

попытка строка для contenteditable DIV

UPDATE: попробуйте строку, набрав его. Там может быть проблема, когда строка вставлена.

abc def 

    gh i 

jkl 
#include<iostream.h> 
#include<conio.h> 

int main(){ 
    int grade, passingMark=75; 

    cout<<"Hi there, please enter your mark: "; 
    cin>>grade; 

    if(((grade >= passingMark)||(grade==35)) && (grade<101)){ 
     cout<<"\nPass!"; 
    } 

    return 0;//15lines 
}  

Сохранить файл также должен быть отформатирован, как это и не без \ п \ г удалены. Im ожидая, что уведомление должно включать \ п

+1

Это работает для меня ... Где именно проблема? – geomagas

+0

Извините, я не уверен, что полностью понимаю. Могу ли я получить пример того, что вы помещаете в div. Что предупреждает. И тогда то, что вы хотите видеть, предупреждает об этом. – Trevor

+0

попробуйте первую строку. предупреждение должно также включать в себя новые строки, а не с \ n удален – extraRice

ответ

0

Попробуйте

alert(ce.text().replace(/\n/g, "\\n").replace(/\r/g, "\\r")); 
0

Когда contenteaditable ДИВ теряет фокус, весь текст преобразуется в HTML для например

<div contenteditable="true">Your text is here 
and has new line </div> 

при потере фокуса он преобразует virtual textarea to html, т.е.

<div>Your text is here</div><br><div>and has new line </div> 

и когда вы попытаетесь использовать текст .text (), вы потеряете желаемое выравнивание, так как на самом деле этого больше не существует в этом div.

Решение 1. Вы можете использовать текстовое поле, с пограничными свойствами, установленными на 0, что бы сделать его похожим на contenteditable DIV или 2. Вы можете захватить весь HTML из contenteditable DIV и заменить HTML с соответствующие текстовые представления с использованием javascript (для этого обратитесь javascript regex replace html chars)

Смежные вопросы