h5 js复制 功能

感谢

http://www.jq22.com/webqd6003

 

var copy1 = document.getElementById('copy1');
var copy2 = document.getElementById('copy2');
var textBox = document.getElementById('textBox');
copy1.onclick = function() {
    copyText(textBox);
}

copy2.onclick = function() {
    copyText('电话号码:' + textBox.innerHTML);
}


/**复制文本 */
function copyText(node) {
    if (!node) {
        return;
    }
    var result;
    // 将复制内容添加到临时textarea元素中
    var tempTextarea = document.createElement('textarea');
    document.body.appendChild(tempTextarea);
    if (typeof(node) == 'object') {
        // 复制节点中内容
        // 是否表单
        if (node.value) {
            tempTextarea.value = node.value;
        } else {
            tempTextarea.value = node.innerHTML;
        }
    } else {
        // 直接复制文本
        tempTextarea.value = node;
    }
    // 判断设备
    var u = navigator.userAgent;
    if (u.match(/(iPhone|iPod|iPad);?/i)) {
        // iOS
        // 移除已选择的元素
        window.getSelection().removeAllRanges();
        // 创建一个Range对象
        var range = document.createRange();
        // 选中
        range.selectNode(tempTextarea);
        // 执行选中元素
        window.getSelection().addRange(range);
        // 复制
        result = document.execCommand('copy');
        // 移除选中元素
        window.getSelection().removeAllRanges();

    } else {
        // 选中    
        tempTextarea.select();
        // 复制
        result = document.execCommand('Copy');
    }
    // 移除临时文本域
    document.body.removeChild(tempTextarea);
    if (result) {
        alert('复制成功', {
            removeTime: 1000
        })
    } else {
        alert('复制失败', {
            removeTime: 1000
        })
    }

    return result;
}

测试安卓,没测试ios

posted @ 2019-10-01 20:06  西瓜霜  阅读(3639)  评论(0编辑  收藏  举报