我正在运行以下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
关于此错误的所有其他报告都说它不应该影响功能,更像是一个详细的警告。
答案 0 :(得分:0)
我用以下代码修复了它
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)