Я пытаюсь использовать navigator.clipboard.write(blob)
, чтобы скопировать DOMString в буфер обмена. Я могу использовать clipboard.writeText('text')
и скопировать его, но мне нужен текст / html.
Пример, который не работает:
const copy = async () => {
await navigator.permissions.query({name: "clipboard-write"}).then(result => {
if (result.state == "granted" || result.state == "prompt") {
const data = new Blob(['<div>test</div>'], {type : 'text/html'})
navigator.clipboard.write(data);
}
})}
Когда я запускаю его, я получаю следующееошибка:
Uncaught (в обещании) TypeError: Не удалось выполнить «запись» в «Буфер обмена»: средство получения итератора не вызывается.
Я также попытался изменить текст/ html to text / plain, который, я думал, заставил бы его функционировать так же, как writeText, но не сделал этого.
Затем я попытался обернуть BLOB-объект в новый ClipboardItem, который я нашел из другого вопроса:
const data = new Blob(['<div>test</div>'], {type: 'text/html'})
const item = new ClipboardItem({'text/html': data});
navigator.clipboard.write(item);
Любое руководство будет оценено.