2

contenteditable のエディターがあり、貼り付けを正しく機能させる方法を見つけようとしています。私は簡単に試しました:

self.editorIframeDocument.addEventListener('paste', function () {
  setTimeout(function () {
    _setText(self.editor, _getText(self.editor));
  }, 1);
});

editorIframeDocument== contenteditable document

_setTextコード全体で使用される入力をクリーニングするための内部関数です。

_getTextできる場合は単純innerTextに、できない場合はシムです(Firefox)。

したがって、問題は、貼り付け時にカーソルが移動することです。例えば:

+==========+
+ |
+ WORD
+
+===========

そこに貼り付けるWORDと(エディターのふりをして)、カーソルはその上のパイプが見える場所に移動します。

ユーザーが貼り付けたものの最後、または正確には前のカーソル位置に常にカーソルを合わせるにはどうすればよいですか。extendOffsetでプロパティを使用できるようSelectionですが、方法がわかりません。私もやってみcollapseToEndましたが、カーソルがエディター全体の最後に置かれます。

何か案は?完全なソース コードが必要な場合: https://github.com/OscarGodson/EpicEditor/blob/feature/ticket-100/src/editor.js

支部にありますfeature/ticket-100

4

0 に答える 0