javascript 如何copy base64图片数据到剪切板?

如下代码,可以做到复制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无效.

阅读 10.3k
2 个回答

直接copy是不行的。没有那么大的权限。或者有一种借助flash的办法。现在FF默认都禁用了flash的。因此不太靠谱
推荐一个库给你吧:clipboard.js
不使用flash的轻量级库

base64不也是字符串形式?为啥用document.execCommand('copy')不行?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏