点击复制Input框中的链,兼容ios或safari浏览器

Peggy ·
更新时间:2024-09-20
· 934 次阅读

var copyText = function (text) {

// 数字没有 .length 不能执行selectText 需要转化成字符串

var textString = text.toString();

var input = document.querySelector('#copy-input');

if (!input) {

input = document.createElement('input');

input.id = "copy-input";

// input.readOnly = true; // 防止ios聚焦触发键盘事件

$('#copy-input').attr('readonly', 'readonly');

input.style.position = "absolute";

input.style.left = "-1000px";

input.style.zIndex = "-1000";

document.body.appendChild(input)

}

input.value = textString;

// ios必须先选中文字且不支持 input.select();

selectText(input, 0, textString.length);

console.log(document.execCommand('copy'), 'execCommand');

if (document.execCommand('copy')) {

document.execCommand('copy');

// alert('已复制到粘贴板');

App_modal.alert.open({title:'复制成功'});

}

input.blur();

// 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();

}

}

};

copyText(url);


作者:孤独又灿烂的蛋



input框 IOS input safari

需要 登录 后方可回复, 如果你还没有账号请 注册新账号