关于ios中实现一键复制的问题

今天在项目中有一个一键复制的需求,再网上找了很多的资料,发现以下的方法很好的实现了
、、、
//一键复制

function copyLink(){

var e = document.getElementById(“copy”);

e.select(); // 选择对象

document.execCommand("Copy"); // 执行浏览器复制命令

document.activeElement.blur();

}
、、、
满心欢喜的提交测试后,发现以上的代码再android中能完美的实现复制,但是在ios中确实不行的,并且在ios中还会有键盘被唤起一闪而逝的情况。

一点点的排查原因,终于发现实e.select()方法,ios不支持

寻找解决办法,终于找到了,借鉴了下面这位大神的方法
function selectText(textbox, startIndex, stopIndex) {

if(textbox.createTextRange) {//ie

    var range = textbox.createTextRange();

    range.collapse(true);

    range.moveStart('character', startIndex);//起始光标

    range.moveEnd('character', stopIndex - startIndex);//结束光标

    range.select();//不兼容苹果

}else{//firefox/chrome

    textbox.setSelectionRange(startIndex, stopIndex);

    textbox.focus();

}

}
作者:VLilyV
来源:CSDN
原文:https://blog.csdn.net/VLilyV/article/details/77523591

此时ios和Android都可以实现复制功能了,但是ios中还是会出现键盘一闪而过的情况,通过给input添加readonly属性得意解决,但是页面底部还是有小小的跳动,如果大家又好的办法,欢迎大家给予好的建议。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值