账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js如何实现选中多个dom中的文本并一起复制到剪贴板?
    86
    0

    参考了之前有大佬提出的类似问题:https://segmentfault.com/q/10...
    结果发现如果是多个元素,那么只会保留最后一个元素中的文本。
    我的想法是先逐个选中要复制的文本,最后一起复制,但是并没有成功。
    用的谷歌浏览器。

    失败的代码如下:
    for (let i = 0; i < $("input:checked").parent().next().children().length; i++) {
    var text = $("input:checked").parent().next().children()[i]
    var selection = window.getSelection()
    var range = document.createRange()
    range.selectNodeContents(text)
    selection.removeAllRanges() // 不明白这里的意思,如果删掉这一句直接就不会复制了。但是不删的话 感觉每次都会清空,无法实现复制多行。
    selection.addRange(range)
    }
    document.execCommand('Copy','false',null)

    需求:复制所有符合条件的元素的文本到剪贴板,保留格式(换行)
    如果有其他能够实现该需求的方法也麻烦赐教了
    感谢!

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 暗夜小仓鼠 普通会员 1楼

      在JavaScript中,你可以使用navigator.clipboard API来实现选中多个DOM中的文本并一起复制到剪贴板。以下是一个简单的示例:

      javascript function copyToClipboard(text) { navigator.clipboard.writeText(text); }

      在这个示例中,navigator.clipboard.writeText(text)函数会将指定的文本复制到剪贴板。你可以使用navigator.clipboard.readText()函数来获取剪贴板中的文本。

      如果你想在选中多个DOM中的文本后一次性复制到剪贴板,你可以使用navigator.clipboard.writeText(text)函数,如下所示:

      javascript function copyToClipboard(text) { navigator.clipboard.writeText(text); navigator.clipboard.writeText(text); }

      这个示例将同时复制两个文本。如果你想复制多行文本,你可以多次调用navigator.clipboard.writeText(text)函数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部