Html日记——实现全平台覆盖的复制到粘贴板

我们这次会利用的神器有clipboard.js,但它对ios设备支持不太友好,所以我们ios部分用纯js实现兼容
这次我实现的效果的是直接点击文字复制,你们也可以根据自己的需求和clipboard.js的API是实现例如点击按钮复制文字

<html>
<head>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="https://clipboardjs.com/dist/clipboard.min.js"></script>
</head>
<body>
    <!-- data-clipboard-text里面的内容就是所要复制的内容 --> 
    <p id="foo" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
    Copy to clipboard
    </p>
    <script>
    if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { //ios用纯js实现
        $("#foo").click(function () {
            var copyDOM = document.querySelector('#foo');  //要复制文字的节点
            var range = document.createRange();
            // 选中需要复制的节点
            range.selectNode(copyDOM);
            // 执行选中元素
            window.getSelection().addRange(range);
            // 执行 copy 操作
            var successful = document.execCommand('copy');
            try {
                var msg = successful ? 'successful' : 'unsuccessful';
                alert('复制成功');
                console.log('copy is' + msg);
            } catch (err) {
                console.log('Oops, unable to copy');
                alert('复制失败');
            }
            // 移除选中的元素
            window.getSelection().removeAllRanges();
        });
    } else {//安卓或PC用clipboard.js实现
        var clipboard = new Clipboard('#foo');
        clipboard.on('success', function (e) {
            alert('复制成功');
            console.info('Action:', e.action);
            console.info('Text:', e.text);
            console.info('Trigger:', e.trigger);
            e.clearSelection();
        });

        clipboard.on('error', function (e) {
            alert('请选择“拷贝”进行复制!');
            console.error('Action:', e.action);
            console.error('Trigger:', e.trigger);
        });
    }

    </script>
</body>
</html>

把上面的代码直接复制下来即可使用

Demo地址http://runjs.cn/detail/rjqjqh8w

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值