function CopyToClipboard (containerid) {
// Create a new textarea element and give it id='temp_element'
const textarea = document.createElement('textarea')
textarea.id = 'temp_element'
// Optional step to make less noise on the page, if any!
textarea.style.height = 0
// Now append it to your page somewhere, I chose <body>
document.body.appendChild(textarea)
// Give our textarea a value of whatever inside the div of id=containerid
textarea.value = document.getElementById(containerid).innerText
// Now copy whatever inside the textarea to clipboard
const selector = document.querySelector('#temp_element')
selector.select()
document.execCommand('copy')
// Remove the textarea
document.body.removeChild(textarea)
}
<div id="to-copy">
This text will be copied to your clipboard when you click the button!
</div>
<button onClick="CopyToClipboard('to-copy')">Copy</button>
3条答案
按热度按时间lqfhib0f1#
您几乎可以在任何浏览器中从input元素(具有
.value
属性的元素)复制到剪贴板,但不能从<div>
、<p>
、<span>
...(具有.innerHTML
属性的元素)复制到剪贴板。但我用这个技巧来做到这一点:
1.创建一个临时输入元素,例如
<textarea>
1.将
innerHTML
从<div>
复制到新创建的<textarea>
1.将
<textarea>
的.value
复制到剪贴板1.删除我们刚刚创建的临时
<textarea>
元素yc0p9oo02#
没有身份证也一样:
我没有测试不同的窗口(
iframes
)虽然!ovfsdjhp3#
请确保您支持不支持的浏览器。
https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand http://caniuse.com/#search=command
javascript不允许使用剪贴板,但其他插件如flash可以访问。
How do I copy to the clipboard in JavaScript?