angularjs关于点击复制input文本内容兼容苹果和安卓问题总结

移动端点击按钮复制链接,由于input自带的select()方法在苹果端无法进行选择
    所以设置如下方法进行点击复制
<input name="" type="text" class="text" ng-model="inviteLink" readonly="" id="clip_num" value="">
<input name="" value="复制链接邀请好友" type="button" class="btn clip-btn" id="clip_button" ng-click="copyNum()">

           $scope.copyNum = function () {
var NumClip = document.getElementById("clip_num");
var NValue = NumClip.value;
var valueLength = NValue.length;
selectText(NumClip, 0, valueLength);
if (document.execCommand('copy', false, null)) {
document.execCommand('copy', false, null) // 执行浏览器复制命令
// console.log("已复制,赶紧分享给朋友吧");
// alert("已复制,赶紧分享给朋友吧。");
layer.msg("复制成功,赶紧分享给朋友吧!");
} else {
layer.msg("浏览器不兼容,请手动复制!");
}
// input自带的select()方法在苹果端无法进行选择,所以需要自己去写一个类似的方法
function selectText(obj, startIndex, stopIndex) {
if (obj.setSelectionRange) {
obj.setSelectionRange(startIndex, stopIndex);
} else if (obj.createTextRange) {
var range = obj.createTextRange();
range.collapse(true);
range.moveStart('character', startIndex);
range.moveEnd('character', stopIndex - startIndex);
range.select();
}
obj.focus();

}
// input自带的select()方法在苹果端无法进行选择,所以需要自己去写一个类似的方法
// 选择文本。createTextRange(setSelectionRange)是input方法
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();
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值