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