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