将 <pre> 标签内容复制到 Vue.js 应用上的剪贴板
Copy <pre> tag content to clipboard on on Vue.js App
我正在开发一个 chrome 扩展 vue 应用程序,我的目标是通过单击按钮将预标记部分的内容复制到剪贴板。我已经为 pre 标签定义了一个元素 ID,因此我可以使用 copyToClipboard() 方法获取内容。我的代码是这样的:
<template>
<div>
<button @click="copyToClipboard()">Copy To Clipboard</button>
</div>
方法定义如下:
methods : {
copyToClipboard() {
const textToCopy = document.getElementById('textToBecopied')
textToCopy.select()
document.execCommand('copy')
}
}
我认为该方法执行正确,但我用作 .select 的函数抛出一个错误,表明它不是函数。谁有更好的主意来实现我正在寻找的东西?
HTMLInputElement.select()
方法选择 <textarea>
元素或包含文本字段的 <input>
元素中的所有文本。
document.getElementById('textToBecopied')
- 是一个 <pre>
元素。
使用Node.textContent
获取文本。并复制到剪贴板 - Clipboard API.
我通过获取预标记内容并将其复制到虚拟文本区域解决了这个问题,然后我能够使用 select 方法以及复制到剪贴板功能。
copyToClipboard() {
const copyText = document.getElementById('textToBecopied').textContent
const textArea = document.createElement('textarea')
textArea.textContent = copyText
document.body.append(textArea)
textArea.select()
document.execCommand('copy')
}
我正在开发一个 chrome 扩展 vue 应用程序,我的目标是通过单击按钮将预标记部分的内容复制到剪贴板。我已经为 pre 标签定义了一个元素 ID,因此我可以使用 copyToClipboard() 方法获取内容。我的代码是这样的:
<template>
<div>
<button @click="copyToClipboard()">Copy To Clipboard</button>
</div>
方法定义如下:
methods : {
copyToClipboard() {
const textToCopy = document.getElementById('textToBecopied')
textToCopy.select()
document.execCommand('copy')
}
}
我认为该方法执行正确,但我用作 .select 的函数抛出一个错误,表明它不是函数。谁有更好的主意来实现我正在寻找的东西?
HTMLInputElement.select()
方法选择 <textarea>
元素或包含文本字段的 <input>
元素中的所有文本。
document.getElementById('textToBecopied')
- 是一个 <pre>
元素。
使用Node.textContent
获取文本。并复制到剪贴板 - Clipboard API.
我通过获取预标记内容并将其复制到虚拟文本区域解决了这个问题,然后我能够使用 select 方法以及复制到剪贴板功能。
copyToClipboard() {
const copyText = document.getElementById('textToBecopied').textContent
const textArea = document.createElement('textarea')
textArea.textContent = copyText
document.body.append(textArea)
textArea.select()
document.execCommand('copy')
}