直接上关键代码
copy_jpg('url.jpg') //示例
// 复制图片,支持jpg,png,传入图片url即可
function copy_jpg(url) {
var canvas = document.createElement('canvas') // 创建一个画板
let image = new Image()
image.setAttribute("crossOrigin", 'Anonymous') //可能会有跨越问题
image.src = url
image.onload = () => { // img加载完成事件
canvas.width = image.width //设置画板宽度
canvas.height = image.height //设置画板高度
canvas.getContext('2d').drawImage(image, 0, 0); //加载img到画板
let url = canvas.toDataURL("image/png") // 转换图片为dataURL,格式为png
clipboardImg(url) // 调用复制方法
}
}
// 从url下载并复制图片,如果是png格式的图片直接调用此方法就能复制成功
async function clipboardImg(url) {
try {
const data = await fetch(url);
const blob = await data.blob();
await navigator.clipboard.write([
new window.ClipboardItem({
[blob.type]: blob
})
]);
alert('复制成功')
} catch (err) {
alert('复制失败')
}
}
我相信你们能看懂的
当然这是其中一种复制的方法,当然有其他更好的
需要注意当网页在本地或https协议才能复制成功