Unhandled Rejection (NotAllowedError): в Safari при записи в Clipboard
Хотел взять <svg> элемент, конвертировать в blob и записать в Clipboard.
Изначальный код:
let chart1 = document.getElementsByClassName('function-plot')[0]
htmlToImage.toBlob(chart1)
.then(function (dataUrl) {
let img = new Image();
img.src = dataUrl;
try {
navigator.clipboard.write([
new window.ClipboardItem({
'image/png': dataUrl
})
]);
} catch (error) {
console.error(error);
}
console.log(dataUrl)
})
.catch(function (error) {
console.error('oops, something went wrong!', error);
});
Работает в Chrome, но ломается в Safari.
Ошибка: Unhandled Rejection (NotAllowedError): The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
И указывает на строку с navigator.clipboard.write.
Попробовал добавить Promise в try-catch (остальной код такой же):
try {
navigator.clipboard.write([
new window.ClipboardItem({
'image/png': new Promise((resolve) => {
resolve(new Blob([dataUrl], { type: 'image/png' }));
}),
})
]);
} catch (error) {
console.error(error);
}
Но ошибка остаётся, при этом в Chrome работает. Подскажите, пожалуйста, как сделать сохранение в Clipboard, которое будет работать как минимум в вышеперечисленных браузерах?