针对 Html5 剪切板功能的实现代码,以下是完整攻略:
HTML5 引入了剪切板 API,它允许你使用 JavaScript 来访问用户剪贴板中的数据,并且可以通过 API 将数据写入到剪贴板。
function copyToClipboard(text) {
const temp = document.createElement('textarea');
temp.value = text;
document.body.appendChild(temp);
temp.select();
document.execCommand('copy');
document.body.removeChild(temp);
}
步骤解释:
textarea
元素,并设置它的值为文本。textarea
元素添加到文档中。textarea
元素中的文本。document.execCommand('copy')
命令将文本复制到剪贴板。textarea
元素。function copyImageToClipboard(imgSrc) {
const img = new Image();
img.src = imgSrc;
img.crossOrigin = 'anonymous';
img.addEventListener('load', function() {
const canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
const ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
canvas.toBlob(function(blob) {
const item = new ClipboardItem({[blob.type]: blob});
navigator.clipboard.write([item]);
});
});
}
步骤解释:
img
元素,并设置其 src
属性为图片地址。crossOrigin
属性并设置为 'anonymous'
,允许跨域访问。load
事件处理程序,用于在图片加载完成后执行。canvas
元素,并设置其宽高为图片的宽高。canvas
上下文,将图片绘制到 canvas
中。canvas.toBlob()
函数生成图片的 Blob 对象,并将其传递给 ClipboardItem
的构造函数创建一个 item
对象。navigator.clipboard.write()
函数将 item
对象写入剪贴板。通过以上示例,可以看出 Html5 剪切板功能的实现其实并不难,而且这个功能在开发中非常实用。需要注意的是,这个功能并不是所有浏览器都支持,所以在使用时要注意浏览器兼容性。