JavaScript自动复制文字到剪贴板

本来是想改oss-browser使用中的一个问题:
每次写markdown,上传单个图片,要获取图片的URL,要经过“选中刚上传的图片”->“点击更多”->"获取地址"->“等待弹出窗口”->“点击复制地址”五个步骤,真的不胜其烦。

所以在上传成功后,判断是单个文件,那么自动复制文件路径到剪贴板要方便很多。

// 自动复制到剪贴板
var _self = document.getElementById('copy');
if(_self!==null) {
  var parent = _self.parentElement;
  if(parent===document.body)
     parent.removeChild(_self);
}
var selection = window.getSelection();
var range = document.createRange();
var newDiv = document.createElement('div');
newDiv.id='copy';
newDiv.style.display='none';
document.body.appendChild(newDiv);
newDiv.innerHTML='要复制的文本内容';
range.selectNode(document.querySelector('#copy'));
selection.addRange(range);
document.execCommand('copy');

但是限于Chromium浏览器的安全策略, 自动复制得与用户交互。

找到Electron有clipboard,很方便耶。第一次接触开发这个oss-broswer跨平台应用相关的技术栈......

const { clipboard } = require('electron')
clipboard.writeText('Example String')