我一直在使用下面的代码来处理复制事件:
range.selectNodeContents(el);
sel.removeAllRanges();
sel.addRange(range);
我的一些用户现在报告说复制事件在 Chrome 中不起作用。我注意到自版本 61 发布以来,这似乎正在发生。在较新版本的 Chrome 中,是否有替代方法可以将元素内容复制到剪贴板?
最佳答案
试试这段代码:
let sel = window.getSelection();
sel.removeAllRanges();
let range = document.createRange();
range.selectNodeContents(el);
el.contentEditable = true;
el.focus();
sel.addRange(range);
如果此代码不起作用,请尝试 在没有
的情况下使用你的代码sel.removeAllRanges();
因为 removeAllranges 将被弃用,并且选择只能有一个范围
我使用了代码(例子)
let range = document.createRange();
let sel = window.getSelection();
range.selectNodeContents(document.body);
sel.addRange(range);
它可以工作(在 chrome 62 中测试)。 可能 el 节点不可见或 DOM 没有此节点。没有所有代码,我无法帮助你。
关于javascript - addRange 不适用于 Chrome 版本 61,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47293507/