3

これ自体が実際の問題かどうかはわかりませんが、Epic Editorを使用して GAE アプリケーション (テンプレート エンジンとしてmakoを使用したwebpy ) にマークダウンを入力して保存しています。

フォームを送信すると、EpicEditor のコンテンツによって入力される非表示の入力要素がフォームにありましたが、すべての空白が に置き換えられました 。これは意図した機能ですか? EpicEditor サイトで同じコードを確認すると、代わりに明らかにスペースが返さ れるので、何が違うのでしょうか?

<form>
<!-- form elements -->
<input id="content" name="content" type="hidden" value></input>
<div id="epiceditor"></div>
<button type="submit" name="submit" id="submit">submit</button>
</form>

<script type="text/javascript">
    $('button#submit').click(function(){
        var content = editor.getElement('editor').body.innerHTML; //all the spaces are returned as &nbsp; and breaks are <br>
        $('input#content').html(content);
    });
</script>

注: データ ストアの TextProperty フィールドにコンテンツをマークダウンとして保存し、marked.js を使用してコンテンツを取得するときに html タグを生成したい

4

3 に答える 3

6

私は EpicEditor の作成者です。innerHTML を取得するべきではありません。EpicEditor は、記述時に innerHTML に対して何もしません。表示されるテキストとコードはすべてのブラウザーで異なり、contenteditableフィールドの動作も異なります。たとえば、ブラウザによっては、スペース some に UTF-8 文字を挿入します&nbsp

EpicEditor は、テキストを正規化する方法を提供します。テキストを手動で解析しようとするべきではありません。

$('button#submit').click(function(){
    var content = editor.exportFile();
    $('input#content').html(content);
});

詳細exportFile: http://epiceditor.com/#exportfilefilenametype

PS input#content を実行する必要はありません。#content と同じです :)

于 2012-11-08T05:29:39.163 に答える
1

理由がわからない場合は、これを実行できます。

<script type="text/javascript">
    $('button#submit').click(function(){
        var content = editor.getElement('editor').body.innerHTML; 
        content = content.replace("&nbsp;", " ");
        $('input#content').html(content);
    });
</script>
于 2012-11-05T20:55:44.290 に答える
0

[編集:解決済み] を使用するべきではありませんがinnerHTMLinnerText代わりに。


Epic Editor は&nbsp;、最初のスペースに続くすべてのスペースで使用することがわかりました。これはおそらく機能です。

しかし、それは問題ではありませんでした。すべてのスペースが に変換されていましたが&nbsp;、最終的には、Epic Editor が から自動保存されたコンテンツをロードするときに発生することに気付きましたlocalStorage

自動保存ではなく、毎回バックエンドからコンテンツを読み込んでいます。最適ではありませんが、解決します。

于 2012-11-07T12:00:32.870 に答える