0

ビューに Ckeditor があり、エディターの値を動的に取得して div に表示します。次のように定義(val、html、texなど)の多くの組み合わせを試しました:

CKEDITOR.on('instanceCreated', function (e) {
    e.editor.on('contentDom', function () {
        e.editor.document.on('keyup', function (event) {
            var str = CKEDITOR.instances['editor1'].getData();
            $("#mirror1").text(str);
            $("#mirror2").val(str);
            $("#mirror3").html(str);
            $('#mirror4').val($('<div/>').html(str).text());
        }
      );
    });
});

私のdiv

<div id="mirror1">
</div>
<div id="mirror2">
</div>
<div id="mirror3">
</div>
<div id="mirror4">
</div>

たとえば私が書いたとき<pre>int i=0;</pre>

mirror1 text= &lt;pre&gt;deneme&lt;/pre&gt;
mirror2 text= null
mirror3 text= <pre>int i=0;</pre>
mirror4 text= null

私は出力を期待しています:int i=0;

これを行うにはどうすればよいですか。正しい構文は何ですか? ありがとう。

4

1 に答える 1

4

jQuery の部分をスキップすると、単純な JavaScript で実行できます。

CKEDITOR.on('instanceCreated', function (e) {
    e.editor.on('contentDom', function () {
        e.editor.document.on('keyup', function (event) {
            var str = CKEDITOR.instances['editor1'].getData();
            document.getElementById("mirror1").innerHTML = str;
        }
      );
    });
 });

しかし、良いミラーが必要な場合は、DOM キーアップ イベントを使用するだけでは不十分な場合があります。CKEditor の onChange プラグインを使用することをお勧めします(免責事項: 私が書きました)。これで、コンテンツが変更されるたびにミラーが更新されます。

CKEDITOR.on('instanceCreated', function (e) {
    var mirror2 = document.getElementById("mirror2");
    e.editor.on('change', function () {
        mirror2.innerHTML = CKEDITOR.instances['editor1'].getData();
    });
});
于 2012-04-29T09:49:25.047 に答える