繁体   English   中英

将HTML元素的innerText复制到剪贴板

[英]Copy innerText of HTML element to clipboard

我有一个HTML锚元素,我只想将该元素的innerText复制到剪贴板。 我尝试的所有方法似乎都复制了innerText和锚点本身,因此仅粘贴已复制的内容会将文本显示为链接。 因此,似乎正在复制该元素的externalHtml。 我知道我可以粘贴为纯文本,但是我只想复制文本。 有没有办法做到这一点,而又不涉及隐藏输入之类的黑客解决方案?

我尝试过同时使用Range.selectNode和Range.selectNodeContents,但是这两者的行为似乎相同,并且在复制到剪贴板的内容中包含了锚点。

这是说明这一点的小提琴: https : //jsfiddle.net/zjoraen1/

function copyMe {
    getSelection().removeAllRanges();
    var range = document.createRange();
    range.selectNodeContents(document.querySelectorAll("a")[0]);
    getSelection().addRange(range);
    document.execCommand("copy");
}

我希望粘贴纯文本,但是会看到格式化为HTML锚的文本。

即使使用document.querySelector('a').childNodes[0]选择文本节点,我也无法使其正常工作,范围似乎要复制为链接。

我建议使用可以复制任何文本字符串的函数,无论如何,您当前的代码将无法在许多设备上运行,例如, 如何使用JavaScript复制到剪贴板?

只需将字符串传递给单击copyToClipboard(document.querySelector('a').innerText)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM