js 复制文字和图片到剪贴板

js 复制文字和图片到剪贴板

最近有个需求,要同时复制多张图片和文字到剪贴板,网上找了好多方法,都不行,最后上个厕所,想到直接翻w3c文档,终于实现了。让大家不迷路,共享出来,不用谢,点赞就行。

不多说,上代码

function copyInfo(sets){
    let imgDiv = document.createElement('div')
    imgDiv.id = '__imgDiv';
    imgDiv.setAttribute('style','z-index: -1;position: fixed;')
    let child = '';
    if(sets.txts){
        if(typeof sets.txts === 'string'){
            child += `<span>${sets.txts}</span>`
        }else{
            sets.txts.forEach(item=>{
                child += `<span>${item}</span>`
            });
        }
    }
    if(sets.imgs){
        if(typeof sets.imgs === 'string'){
            sets.imgs = sets.imgs.indexOf('https')>-1?sets.imgs.replace('https','http'):sets.imgs;
            child += `<img src="${sets.imgs}" />`
        }else{
            sets.imgs.forEach(item=>{
                item = item.indexOf('https')>-1?item.replace('https','http'):item;
                child += `<img src="${item}" />`
            });
        }
    }
    imgDiv.innerHTML = child;
    document.body.insertBefore(imgDiv,document.body.lastChild)
    let dom = document.getElementById('__imgDiv')
    console.log(dom)
    if (window.getSelection) {//chrome等主流浏览器
        let selection = window.getSelection();
        let range = document.createRange();
        range.selectNodeContents(dom);
        selection.removeAllRanges();
        selection.addRange(range);
    } else if (document.body.createTextRange) {//ie
        let range = document.body.createTextRange();
        range.moveToElementText(dom);
        range.select();
    }
    document.execCommand('copy');
    window.getSelection().removeAllRanges();
    imgDiv.parentNode.removeChild(imgDiv);
}

那么怎么使用呢

copyInfo({
   txts: '请复制我',
   imgs: ['https://img.shop.wusehaowu.com/20210407/da46894987254688af008a95ad121da9.png','https://t00img.yangkeduo.com/goods/images/2021-02-27/1e5bc93f957fefabc13d994a9f379dda.jpeg']
});
要在JavaScript中将文字复制到剪切板,可以使用以下方法。首先,选择要复制的文本,这可以通过使用input元素的select()方法来实现。然后,使用document对象的execCommand('copy')方法将选中的文本复制到剪切板中。例如,在示例中,我们可以通过以下方式复制文本到剪切板: const inputElement = document.querySelector('#input'); inputElement.select(); document.execCommand('copy'); 这段代码将选中id为"input"的输入框中的文本并复制到剪切板中。 另外,还可以使用其他方法实现复制到剪切板的功能。例如,可以使用第三方库如clipboard.js来简化复制的过程。在这种情况下,可以通过给按钮添加特定属性,并使用相应的JavaScript代码来实现复制到剪切板的功能。例如,在示例中,可以使用以下方式复制文本到剪切板: <span class="btn-copy copy" @click="copyClipboard" data-clipboard-text="这里面是复制的内容,可以使用变量代替">点击复制</span> 通过点击按钮,执行copyClipboard函数来复制指定的文本到剪切板。 总结起来,要在JavaScript复制文字到剪切板,可以使用原生的execCommand('copy')方法或者使用第三方库实现。无论选择哪种方法,都需要先选中文本,然后调用相应的方法来完成复制的动作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [剪贴板操作 Clipboard API 教程](https://blog.csdn.net/liuhao9999/article/details/119318375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [js实现复制文字到剪切板](https://blog.csdn.net/weixin_33923148/article/details/93282090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿某人_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值