aliyun / oss-browser

OSS Browser 提供类似windows资源管理器功能。用户可以很方便的浏览文件,上传下载文件,支持断点续传等。
Other
3.28k stars 458 forks source link

自动复制问题 #195

Open jahentao opened 5 years ago

jahentao commented 5 years ago

您好,我想在单个文件上传之后,将生成的URL路径自动复制到系统剪贴板上,但是尝试了没有效果,想问问解决方法。

我在node/ossstore/lib/upload-job.js 329 行console.log('upload: '+self.from.path+' %celapse','background:green;color:white',self.endTime-self.startTime,'ms') 文件上传完成之后添加了如下代码:

// 拼凑图片URL
var eptpl = self.oss.config.endpoint;
var protocol = eptpl.indexOf('https:') === 0 ? 'https:' : "http:";
var endpoint = eptpl.substr(8); // https://
var link = protocol + '//' + self.to.bucket + '.' + endpoint + '/' + encodeURI(self.to.key);
console.log(link);

// 自动复制到剪贴板
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=link;
range.selectNode(document.querySelector('#copy'));
selection.addRange(range);
document.execCommand('copy');

但是没有效果,查资料,可能是chromium的安全策略自动复制得与用户交互。想问问有没有解决方法。

jahentao commented 5 years ago

好吧,找到Electron有clipboard,很方便耶。第一次接触开发这个应用相关的技术栈......

const { clipboard } = require('electron')
clipboard.writeText('Example String')
luozhang002 commented 5 years ago

@jahentao Electron有clipboard这个应该是可以的

jahentao commented 5 years ago

@luozhang002 这个问题已经解决了, 我在 #198 里提交了将文件URL自动复制到剪贴板的PR,希望能有帮助

luozhang002 commented 5 years ago

@jahentao 代码看了,从使用功能上来说应该是可以用的,下个版本发之前考虑会合进去,这个功能应该比较小众,而且一半生成的URL地址是有有效时间的,所以这边才会做成一个单独的页面让用户可配置。

carli0215 commented 5 years ago

@jahentao 代码看了,从使用功能上来说应该是可以用的,下个版本发之前考虑会合进去,这个功能应该比较小众,而且一半生成的URL地址是有有效时间的,所以这边才会做成一个单独的页面让用户可配置。

一切方便用户的功能都不能算小众,懒是人类第一生产力~~:)