addRange无法在Chrome版本61上运行

时间:2017-11-14 19:09:35

标签: javascript google-chrome

我一直在使用以下代码来处理复制事件很长一段时间:

range.selectNodeContents(el);
sel.removeAllRanges();
sel.addRange(range);

我的部分用户现在报告复制活动在Chrome中无效。我注意到自从版本61发布以来,这似乎正在发生。是否有替代方法可以在较新版本的Chrome中将元素内容复制到剪贴板?

1 个答案:

答案 0 :(得分:0)

试试这段代码:

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没有这个节点。没有所有代码,我无法帮助你。