美文网首页
js 复制文字功能

js 复制文字功能

作者: 乐宝呗 | 来源:发表于2022-01-27 14:27 被阅读0次

    功能:点击按钮,复制值。

    实现方法:通过原生js 的方法 document.execCommand('copy')

    巨坑:document.execCommand(‘copy’)不生效

    原因

        1.input框不能有disabled属性

        2.根据第一条扩展,input的width || height 不能为0;

        3.input框不能有hidden、display:none属性

    解决方案:在不改变原需求的情况下,新增一个input框,然后设置 opacity:0; 实现不可见, position:absolute; 脱离文档流解决占空间的问题

    语法:

    document.execCommand(aCommandName,aShowDefaultUI,aValueArgument),返回值Boolean 如果返回false 则表示还不能支持;

    参数说明:

    1.aCommandName

            命令的名称:常用的为"copy","cut"等;

                    注:“copy” 拷贝当前选中内容到剪贴板

                            “cut”  剪贴当前选中的文字并复制到剪贴板

    2.aShowDefaultUI

            是否展示用户界面,一般为 false;

    3.aValueArgument

          默认为null,

    示例

    <!-- html -->

            <!-- 点击复制输入框value值 -->

            <input type="text" id="copyVal" value="被复制的内容" />

            <!-- 点击复制div标签的innerHTML -->

            <div id="copyInner">被复制的内容</div>

            <button onclick="myCopy">点击复制</button>

    // 方法一:点击按钮复制文本框内容

        function myCopy(){

            var copyVal = document.getElementById('copyVal');

            copyVal.select();

            document.execCommand('copy');

        }

        // 方法二:点击按钮复制div标签内容

        function myCopy(){

            const range = document.createRange();

            range.selectNode(document.getElementById('copyInner'));

            const selection = window.getSelection();

            if(selection.rangeCount > 0) selection.removeAllRanges();

            selection.addRange(range);

            document.execCommand('copy');

        }

    相关文章

      网友评论

          本文标题:js 复制文字功能

          本文链接:https://www.haomeiwen.com/subject/lclahrtx.html