js复制文本到粘贴板(Clipboard.writeText())

 更新时间:2022年07月01日 15:34:10   作者:Moshow郑锴  
这篇文章主要介绍了js复制文本到粘贴板(Clipboard.writeText()),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

复制文本到粘贴板(Clipboard.writeText())

js如何复制文本到粘贴板呢,网上所说的各种复制。。在Chrome或者说在我这个项目都没用。

  • windows.copy
  • document.execCommand(“copy”);
  • clipboard.js
  • Clipboard.writeText() ,可行!

网上的代码

通过 document.execCommand('copy') 来操作。

    //创建选中范围
    var range = document.createRange();
    range.selectNode(copyDom);
    //移除剪切板中内容
    window.getSelection().removeAllRanges();
    //添加新的内容到剪切板
    window.getSelection().addRange(range);
    //复制
    var successful = document.execCommand('copy');

通过 window.clipboardData.setData('Text',textVal) 这个 对象来操作的。可是都不work。

/**
* 复制代码
 */
$('#btnCopy').bind('click', function (e) {
    if (!$.isEmptyObject(codeData)) {
        //support IE
        var clipboardData = window.clipboardData;
        //support Chrome/Firefox
        if (!clipboardData) {
            clipboardData = e.originalEvent.clipboardData;
        }
        if (!clipboardData) {
            console.log(clipboardData);
            console.log(clipboardData.getData('text'));
            clipboardData.setData('Text', codeData[id]);
        }
        if(window != undefined){
           window.copy($("#genCodeArea").val());
        }
    }
});

clipboard.js

拷贝文字不应当是一件困难的事. 不需要过多繁杂的配置或者下载很多脚本文件. 最重要的,它不应该依赖flash或者其他框架,应该保持简洁,clipboard.js

1.通过cdn引入

<script src="//cdn.staticfile.org/clipboard.js/2.0.4/clipboard.min.js"></script>

2.使用功能

<!-- Target -->
<input id="copyArea" value="https://zhengkai.blog.csdn.net">
<!-- Trigger -->
<button class="btn" data-clipboard-target="#copyArea">
    <img src="assets/clippy.svg" alt="Copy to clipboard">
</button>

3.查看效果

在这里插入图片描述

4.这个功能正常是可以的,但是可能我用了CodeMirror或者其他js导致冲突。

Clipboard.writeText()

以下场景是来自CodeGenerator的复制功能:

$('#btnCopy').on('click', function(){
     if(!$.isEmptyObject(genCodeArea.getValue())&&!$.isEmptyObject(navigator)&&!$.isEmptyObject(navigator.clipboard)){
         navigator.clipboard.writeText(genCodeArea.getValue());
         layer.msg("复制成功");
     }
 });

来源https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText

兼容性:Chrome66以上/Firefox63以上

在这里插入图片描述

效果展示

在这里插入图片描述

复制内容到剪贴板(无插件,兼容所有浏览器)

HTML部分:

<button onclick="copyToClip('内容')"> Copy </button>

JS部分:

/**
 * 复制单行内容到粘贴板
 * content : 需要复制的内容
 * message : 复制完后的提示,不传则默认提示"复制成功"
 */
function copyToClip(content, message) {
    var aux = document.createElement("input"); 
    aux.setAttribute("value", content); 
    document.body.appendChild(aux); 
    aux.select();
    document.execCommand("copy"); 
    document.body.removeChild(aux);
    if (message == null) {
        alert("复制成功");
    } else{
        alert(message);
    }
}

【补充】

 如果你想复制多行数据的话,可以采用如下方法。

/**
 * 复制多行内容到粘贴板
 * contentArray: 需要复制的内容(传一个字符串数组)
 * message : 复制完后的提示,不传则默认提示"复制成功"
 */
function copyToClip(contentArray, message) {
    var contents = "";
    for (var i = 0; i < contentArray.length; i++) {
        contents += contentArray[i] + "\n";
    }
    const textarea = document.createElement('textarea');
    textarea.value = contents;
    document.body.appendChild(textarea);
    textarea.select();
    if (document.execCommand('copy')) {
        document.execCommand('copy');
    }
    document.body.removeChild(textarea);
    if (message == null) {
        alert("复制成功");
    } else{
        alert(message);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入理解移动前端开发之viewport

    深入理解移动前端开发之viewport

    这篇文章主要介绍了移动前端开发之viewport的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • 微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解

    微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解

    这篇文章主要介绍了微信小程序学习笔记之表单提交与PHP后台数据交互处理,结合实例形式详细分析了微信小程序前台数据form表单提交及后台使用php进行处理相关操作技巧,并配以图文形式详细说明,需要的朋友可以参考下
    2019-03-03
  • JavaScript中正则表达式判断匹配规则及常用方法

    JavaScript中正则表达式判断匹配规则及常用方法

    JS作为一门常用于web开发的语言,必然要具备正则这种强大的特性,本文将对JS中的正则用法及常用函数进行一番总结
    2017-08-08
  • JavaScript实现导入导出excel的示例代码

    JavaScript实现导入导出excel的示例代码

    这篇文章主要为大家详细介绍了如何利用JavaScript语言实现导入导出excel文件的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-07-07
  • webpack中的代理配置详解

    webpack中的代理配置详解

    本文主要介绍了webpack中的代理配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • JavaScript中数组双重去重的方法总结

    JavaScript中数组双重去重的方法总结

    这篇文章主要为大家学习介绍了JavaScript中数组双重去重的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-07-07
  • 原生js的RSA和AES加密解密算法

    原生js的RSA和AES加密解密算法

    这篇文章主要为大家详细介绍了原生js的RSA和AES加密解密算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • JS前端图片最优化压缩方案

    JS前端图片最优化压缩方案

    这篇文章主要为大家介绍了JS前端图片最优化压缩方案,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 使用webpack构建应用的方法步骤

    使用webpack构建应用的方法步骤

    这篇文章主要介绍了使用webpack构建应用的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 原生JS实现图片懒加载之页面性能优化

    原生JS实现图片懒加载之页面性能优化

    在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况。这篇文章主要介绍了页面性能优化原生JS实现图片懒加载 ,需要的朋友可以参考下
    2019-04-04

最新评论