提问者:小点点

在iOS中使用Javascript复制到剪贴板


我正在使用这个函数将一个URL复制到剪贴板:

function CopyUrl($this){

  var querySelector = $this.next().attr("id");
  var emailLink = document.querySelector("#"+querySelector);

  var range = document.createRange();
  range.selectNode(emailLink);  
  window.getSelection().addRange(range);  

  try {  
    // Now that we've selected the anchor text, execute the copy command  
    var successful = document.execCommand('copy', false, null);
    var msg = successful ? 'successful' : 'unsuccessful'; 

    if(true){
        $this.addClass("copied").html("Copied");
    }

  } catch(err) {  
    console.log('Oops, unable to copy');  
  }  

  // Remove the selections - NOTE: Should use   
  // removeRange(range) when it is supported  
  window.getSelection().removeAllRanges();
}

在桌面浏览器上一切正常,但在iOS设备上就不行了,在iOS设备上我的函数成功返回,但数据根本没有复制到剪贴板上。是什么原因造成的?我该如何解决这个问题?


共3个答案

匿名用户

看起来,有了选择范围和一些小黑的帮助,就可以直接复制到iOS(>=10)Safari上的剪贴板。我亲自在iPhone 5c iOS 10.3.3和iPhone 8 iOS 11.1上测试了这一点。不过,似乎也有一些限制,这些限制是:

  1. 文本只能从