CUT и PASTE в редакторе Ace - PullRequest
       48

CUT и PASTE в редакторе Ace

1 голос
/ 31 января 2020

Я использую редактор ace, и я не могу ВЫРЕЗАТЬ и ПАСТИТЬ программно. Для Undo и Redo я использовал следующий код. Как выполнить CUT и PASTE?

editor.getSession().getUndoManager().undo(false); 
editor.getSession().getUndoManager().redo(false); 

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Для отмены лучше использовать editor.execCommand("undo") (и аналогично для повторного выполнения).

Вырезать и вставлять сложнее, потому что команды в тузе не изменяют буфер обмена. Если вам нужно поддерживать только новые браузеры, вы можете использовать navigator.clipboard следующим образом:

// paste
navigator.clipboard.readText().then(function(text) {
    editor.execCommand("paste", text)
})

// copy / cut
var text = editor.getCopyText()
editor.execCommand("copy") // or cut
navigator.clipboard.writeText(text)

старые браузеры сложнее обрабатывать https://github.com/c9/core/blob/c4d1c59dc8d6619bdca3dbe740291cd5cd26352c/plugins/c9.ide.clipboard/html5.js

1 голос
/ 01 февраля 2020

Для операции копирования / вырезания попробуйте использовать функцию getCopyText , которая копирует выбранный текст.

var copiedText = editor.getCopyText()

Для вставки выбранного содержимого вы можете использовать функция insert .

editor.insert(copiedText)

Поскольку вы ищете, в частности, функцию CUT, после копирования текста вы можете сделать .insert (""), который заменяет весь выбор так же, как работает функция CUT.

...