我一直使用以下代码来处理复制事件已有一段时间了:
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 没有这个节点。没有所有代码,我无法帮助您。