js copy 函数

function copy(input, { target = document.body } = {}) {

        const element = document.createElement('textarea');

        const previouslyFocusedElement = document.activeElement;

        element.value = input;

        // Prevent keyboard from showing on mobile

        element.setAttribute('readonly', '');

        element.style.contain = 'strict';

        element.style.position = 'absolute';

        element.style.left = '-9999px';

        element.style.fontSize = '12pt'; // Prevent zooming on iOS

        const selection = document.getSelection();

        let originalRange = false;

        if (selection.rangeCount > 0) {

          originalRange = selection.getRangeAt(0);

        }

        target.append(element);

        element.select();

        // Explicit selection workaround for iOS

        element.selectionStart = 0;

        element.selectionEnd = input.length;

        let isSuccess = false;

        try {

          isSuccess = document.execCommand('copy');

        } catch {}

        element.remove();

        if (originalRange) {

          selection.removeAllRanges();

          selection.addRange(originalRange);

        }

        // Get the focus back on the previously focused element, if any

        if (previouslyFocusedElement) {

          previouslyFocusedElement.focus();

        }

        return isSuccess;

      }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值