javascript – 使用jQuery模仿现代浏览器的复制URL(复制时添加http://)
作者:互联网
我试图模仿现代浏览器的“复制网址”功能.
查看网址时,您看不到http://.如果将其复制到剪贴板,将添加http://.到目前为止我有这个:
$('#address input').bind('copy', function() {
$.fn.changevalue = function (v) {
return $(this).val(v).trigger('change');
}
var origval = $(this).val();
$(this).changevalue('http://' + origval);
});
这会将http://添加到输入字段,如果检测到操作’copy’但它会将副本停止到剪贴板.该函数还将http://添加到主输入字段,这是我不想要的.我只想将它添加到剪贴板.
解决方法:
注意:JavaScript无法访问剪贴板.任何执行此操作的插件通常在后台使用Flash.
要修复复制事件,在将http://添加到输入后,您需要触发select事件(而不是更改事件).更改值后,将不再选择文本,因此您需要在编辑后选择新文本.
要从输入字段中删除http://,可以在事件结束时添加setTimeout以重置值.
此外,您应该在回调之外设置$.fn.changevalue,不需要在每个复制事件上重新设置它.
$.fn.changevalue = function(v) {
return this.val(v).trigger('select'); // this is already a jQuery object
}
$('#address input').bind('copy', function() {
var $this = $(this),
origval = $this.val();
$this.changevalue('http://' + origval);
setTimeout(function(){
$this.val(origval);
}, 0);
});
标签:jquery,javascript,copy-paste 来源: https://codeday.me/bug/20190630/1335973.html