不支持不连续的选择错误停止复制到剪贴板

Discontiguous selection is not supported Error stops Copying to Clipboard

我运行下面的Coffescript代码将某些数据复制到用户剪贴板。

ready = ->

copyEmailBtn = document.querySelector('.clipboard-copy')
copyEmailBtn.addEventListener 'click', (event) ->
  targetClass = document.querySelector('.clipboard-copy').dataset.targetClass
  target = document.querySelector(targetClass)
  range = document.createRange()
  range.selectNode target
  window.getSelection().addRange range
  try
    document.execCommand('copy')
  catch err
    console.log 'Oops, unable to copy'
  window.getSelection().removeAllRanges()
  return

if $('.clipboard-copy').length > 0
  $(document).ready(ready)
  $(document).on('page:load', ready)

When I click the related button to start the copy process chrome throws the following error

这个问题是我无法追踪到它,因为它只出现在四分之一的尝试中。

复制按钮按预期工作,其他 3 次 4 次,但是每当出现此错误时,它都不会复制文本。

我没有尝试任何其他浏览器,因为我们的应用程序无法在任何其他浏览器中运行,也不应该。

有没有人处理过这个错误?

我尝试了以下建议,正如您从代码中看到的那样 Discontiguous selection is not supported

关于此错误的所有其他报告都说它不应该影响功能,更像是一个冗长的警告。

我用下面的代码修复了它

ready = ->

copyEmailBtn = document.querySelector('.clipboard-copy')
copyEmailBtn.addEventListener 'click', (event) ->
  window.getSelection().removeAllRanges()
  targetClass = document.querySelector('.clipboard-copy').dataset.targetClass
  target = document.querySelector(targetClass)
  range = document.createRange()
  range.selectNode target
  window.getSelection().addRange range
  try
    document.execCommand('copy')
  catch err
    console.log 'Oops, unable to copy'
  window.getSelection().removeAllRanges()
  return

if $('.clipboard-copy').length > 0
  $(document).ready(ready)
  $(document).on('page:load', ready)