2

サイトでプラグイン JQuery Text Editor を使用しています。ユーザーが別の Web サイトから書式設定済みの HTML テキストをコピーしてプラグインのテキスト ボックスに貼り付けると、正しくレンダリングされず、文字列の一部が途切れる場合があります。データベースから取得すると、壊れたテキストが表示されます。

このテキストを手動で作成するか、ボックスからコピーして貼り付けると、問題なく表示されます。

これは、JQuery Text Editor の書式が正しくないことに関係していると思います。

私はそれが動作するように見えるスタックで以下のこの関数を見つけました:

document.querySelector("div[announcements_container]").addEventListener("paste", function(e) {
    e.preventDefault();
    var text = e.clipboardData.getData("text/plain");
    document.execCommand("insertHTML", false, text);
});

ただし、問題は、このコードを使用すると、JQuery テキスト エディターのテキスト ボックスが次のように壊れることです。

ここに画像の説明を入力

JQTE の HTML:

<textarea class="jqte" style="margin-bottom: -20px;" rows="50" cols="50" name="body" id="body"></textarea>

通常は次のようになります。

ここに画像の説明を入力

誰でも私を助けることができますか?ありがとう。

4

1 に答える 1

4

うーん、jqteデモページでこれを実行すると、コードスニペットが機能するようです。フォーマットされていないテキストを一番上のボックスに貼り付けます。念のため、とにかくそれがしたいので、に変更execCommandinsertTextました。

document.querySelector("div.jqte_green_editor").addEventListener("paste", function(e) {
    e.preventDefault();
    var text = e.clipboardData.getData("text/plain");

    document.execCommand("insertText", false, text);
});

のセレクターdiv[announcements_container]が正しいですか? div.announcements_container代わりに試してみてください。

于 2015-12-28T19:16:06.700 に答える