javascript - 如何将文本从 div 复制到剪贴板

标签 javascript jquery

这是我的代码,当用户单击此按钮时:

<button id="button1">Click to copy</button>

如何复制此 div 内的文本?

<div id="div1">Text To Copy</div>

最佳答案

我尝试了上面提出的解决方案。但它还不够跨浏览器。我确实需要 ie11 才能工作。 经过尝试后我得到:

    <html>
        <body>
            <div id="a" onclick="copyDivToClipboard()"> Click to copy </div>
            <script>
                function copyDivToClipboard() {
                    var range = document.createRange();
                    range.selectNode(document.getElementById("a"));
                    window.getSelection().removeAllRanges(); // clear current selection
                    window.getSelection().addRange(range); // to select text
                    document.execCommand("copy");
                    window.getSelection().removeAllRanges();// to deselect
                }
            </script>
        </body>
    </html>

使用 Firefox 64、Chrome 71、Opera 57、ie11(11.472.17134.0)、edge(EdgeHTML 17.17134) 进行测试

2019 年 3 月 27 日更新。

出于某种原因,document.createRange() 以前无法在 ie11 上工作。但现在正确返回一个 Range 对象。因此,最好使用它,而不是 document.getSelection().getRangeAt(0)

关于javascript - 如何将文本从 div 复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36639681/

相关文章:

javascript - 更改谷歌地图上图 block 的背景颜色

javascript - jQuery/JS - 计算元素内的元素数量

jquery - 使用 Ajax 发布到 Django View 时的 Http302 响应

jQuery 单击仅有效一次

javascript - 改变数组的结构

javascript - 使用javascript动态添加只读输入框的总和

javascript - 我如何调用数组中的一系列数字?

javascript - getJSON解释

javascript - 重新加载图像不刷新

javascript - 当我单击 ajax 选项卡控件时,它显示一个矩形框如何在 asp.net 中删除