我有一个网站上的http在那里发布后,我需要复制此职位的网址到剪贴板。
我让观察者
const observer = new MutationObserver(function (mutations, mutationInstance) {
const link = document.querySelector('#message > p > a')
if (link) {
unsecuredCopyToClipboard(link.href)
mutationInstance.disconnect()
}
})
observer.observe(document, {
childList: true,
subtree: true,
})
这个功能
function unsecuredCopyToClipboard(text) {
const textArea = document.createElement('textarea')
textArea.value = text
document.body.appendChild(textArea)
textArea.focus()
textArea.select()
console.log(window.getSelection().toString())
try {
var successful = document.execCommand('copy')
var msg = successful ? 'successful' : 'unsuccessful'
console.log('Fallback: Copying text command was ' + msg)
} catch (err) {
console.error('Unable to copy to clipboard', err)
}
document.body.removeChild(textArea)
}
我在控制台中看到正确的选择(我需要的链接)和一条消息:后备:复制文本命令失败
我认为这是因为所有document.execCommand('copy')调用必须作为用户操作的直接结果发生,例如单击事件处理程序-How do I copy to the clipboard in JavaScript?
那么,有没有什么方法可以在剪贴板中获得我需要的链接而不需要点击?
1条答案
按热度按时间fhity93d1#
在输入中使用document.execCommand('copy')时出错:1.输入没有禁用类类型2.输入没有隐藏和显示
所以呢?修正了只添加一个输入来设置类样式不透明度:0;然后隐藏选择此输入副本文本。