Как мне разрешить JavaScript execCommand («вставить») работать в Electron? - PullRequest
0 голосов
/ 16 января 2020

Когда пользователь нажимает указанную кнопку c на моем экране, я хочу вставить содержимое буфера обмена в указанное текстовое поле c.

В настоящее время я использую код:

pasteSelectedTextFromClipboard() {
    const input = this.$refs.input as any
    input.focus()
    document.execCommand("paste")
}

Когда я в Google обнаруживаю, что в Firefox необходимо установить user_pref("capability.policy.policynames", "allowclipboard");, чтобы эта функция работала. Что мне нужно сделать, чтобы заставить его работать в Electron?

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Вы можете использовать clipboard.readText() из API буфера обмена Electron для этого:

const { clipboard } = require("electron")

const input = document.getElementById("textbox")
input.value = clipboard.readText()

Дополнительное преимущество: вам больше не нужно фокусировать элемент ввода, как вы программно устанавливая его значение.

Обратите внимание, что это заменит весь текущий текст ввода тем, что находится в буфере обмена.

0 голосов
/ 16 января 2020

Электрон выставляет очень хорошие API для всех операций с буфером обмена

...