169 похожих чатов

Для копирования текста в буфер обмена я использовал эту функцию: async

(item, data) => {
const key = data?.key ?? ""
navigator.clipboard.writeText(key).then(() => {}).catch(err => {
console.error('Не удалось скопировать текст: ', err);
});
return Promise.resolve();
}
Тестировщик тестировал на dev стенде и сказал копирование не работает. Локально работает.
На dev стенде нет https и я понял что из-за этого там не работает.
Я посмотрел, а Chrome даже включить разрешение на копирование не позволяет https://i.imgur.com/DL7z5Bz.png .
Продакшн сайт будет на https, там будет работать по идее.

Я собираюсь использовать такую функцию.
function copyTextToClipboard(text) {
if (navigator.clipboard && window.location.protocol === 'https:') {
navigator.clipboard.writeText(text).then(() => {
console.log('Текст успешно скопирован в буфер обмена');
}).catch(err => {
console.error('Не удалось скопировать текст в буфер обмена', err);
});
} else {
const textarea = document.createElement("textarea");
textarea.value = text;
textarea.style.position = 'fixed';
document.body.appendChild(textarea);
textarea.focus();
textarea.select();

try {
document.execCommand('copy');
console.log('Текст успешно скопирован в буфер обмена с использованием execCommand');
} catch (err) {
console.error('Не удалось скопировать текст в буфер обмена с использованием execCommand', err);
}

document.body.removeChild(textarea);
}
}
Костыль, но вроде должно работать. А больше у меня нет вариантов? Может что посоветуете? Или я вообще все неправильно понял?

2 ответов

40 просмотров

Эта апи, во первых, зависит от браузера, во вторых, на сколько я помню пользователь должен дать согласие что бы сайт ему что то в буфер складывал

хрена сеье

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта