如下代码,可以做到复制img tag到剪切板,但要paste到不支持html标记的地方就无效了:
document.addEventListener('copy', function(e) {
var type = "image/" + (localStorage.screenshotFormat || 'png');
e.clipboardData.setData('text/html', '<img src="' + ps.imgData + '" />');
e.preventDefault();
});
怎样使能够支持setData('text/png', ps.imgData)呢?
imgData是通过canvas生成的base64 string.
不用Flash
使用selectRegion + document.exeCommand的方法也测试过,无效. 这种方式,text可以,image无效.
直接copy是不行的。没有那么大的权限。或者有一种借助flash的办法。现在FF默认都禁用了flash的。因此不太靠谱
推荐一个库给你吧:clipboard.js
不使用flash的轻量级库