5

フォーマットされている contenteditable div 内にテキストを保存したかったのpreです。とが省略さpreれているテキストではなく、テキストの形式を取得するにはどうすればよいですか?\n\r

$('#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 : 文字列を入力してみてください。文字列を貼り付ければ問題ないかもしれません。

1

abc def

    gh  i

jkl

2

#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
}    

保存ファイルも、\n\r を削除せずに、このようにフォーマットする必要があります。アラートに \n が含まれていることを期待しています

4

2 に答える 2

1

contenteaditable div がフォーカスを失うと、テキスト全体が html に変換されます。

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

フォーカスを失うと、仮想テキストエリアが html に変換されます。

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

.text() を試みると、実際にはその div にもう存在しないため、目的の配置が失われます。

解決策 1. 境界プロパティを 0 に設定して textarea を使用すると、contenteditable div のように見えます。または 2. contenteditable div の html 全体を取得し、javascript を使用して html を対応するテキスト表現に置き換えることができます (そのためにjavascript 正規表現を参照し、html 文字を置き換えます)

于 2015-11-23T14:52:45.150 に答える
0

これを試して

alert( ce.text().replace(/\n/g, "\\n" ).replace(/\r/g, "\\r"));
于 2013-10-09T17:22:17.053 に答える