javascript 如何调用document.execCommand('copy ')而不点击?

bakd9h0s  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(184)

我有一个网站上的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?
那么,有没有什么方法可以在剪贴板中获得我需要的链接而不需要点击?

fhity93d

fhity93d1#

在输入中使用document.execCommand('copy')时出错:1.输入没有禁用类类型2.输入没有隐藏和显示
所以呢?修正了只添加一个输入来设置类样式不透明度:0;然后隐藏选择此输入副本文本。

相关问题