javascript - 将 HTML 元素的 innerText 复制到剪贴板
问题描述
我有一个 HTML 锚元素,我只想将该元素的 innerText 复制到剪贴板。我尝试的所有方法似乎都复制了 innerText 和锚本身,因此只需粘贴已复制的内容即可将文本显示为链接。所以它似乎是在复制元素的 outerHtml。我知道我可以粘贴为纯文本,但我只想复制文本。有没有办法做到这一点,而不涉及隐藏输入等骇人听闻的解决方案?
我已经尝试使用 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 锚的文本。
解决方案
即使选择带有 , range 的文本节点,我也无法让它工作document.querySelector('a').childNodes[0]
,似乎想要复制为链接。
我建议使用可以复制任何文本字符串的函数,您当前的代码无论如何都无法在许多设备上运行,例如如何在 JavaScript 中复制到剪贴板?
只需在点击时将字符串传递给它 -copyToClipboard(document.querySelector('a').innerText)
推荐阅读
- c# - 在特定条件下在 gridview 和 listview 上显示 Json
- java - Eclipse 从资源 NullPointerException 读取文件
- javascript - 使用正则表达式使用 JavaScript 提取特定字符串
- java - 如何将 Json 数组从 url 转换为 java 数组以显示不同的国家名称?
- java - RxJava 2 - 你如何只为第一次单击事件执行操作,然后在事件发生后重新启动?
- java - org.springframework.kafka.listener.ListenerExecutionFailedException:无法使用传入消息调用侦听器方法
- cobol - 我想使用 cobol 在屏幕中间打印“*”的三角形??我该怎么做?
- xcode - Xcode 10、WatchKit 应用程序和分发错误 ITMS-90334 与 com.apple.wk
- html - 样式化表单中的列表项
- python - 子窗口中的小部件使用 tkinter python 中的实时数据更新