编程语言
首页 > 编程语言> > javascript – 使用jQuery模仿现代浏览器的复制URL(复制时添加http://)

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);
});

演示:http://jsfiddle.net/TGHcD/

标签:jquery,javascript,copy-paste
来源: https://codeday.me/bug/20190630/1335973.html