当用户以"不允许"回答提示时,execCommand('copy')在IE中无声地失败

use*_*035 7 internet-explorer copy execcommand

如果安全级别是在IE设置为至少"中"当您执行的execCommand("复制")命令(边及11测试),浏览器会提示你,问你是否婉,使页面操作剪贴板.

我的问题是,如果单击"不允许",execCommand('copy')仍然返回true.此外,不会抛出任何错误.

如何捕获并处理此用户响应?

Scr*_*thy 0

这是一个较老的问题,但我会插话,因为我自己刚刚遇到这个问题。

我最终做的是利用 IE 确实支持该document.execCommand('paste')方法的事实。也就是说,您可以将复制的材料粘贴到隐藏的输入中,并根据应复制的内容进行检查。

如果用户允许操作剪贴板,则粘贴的内容和复制的内容将是相同的。否则,他们就不会这样了。像这样的东西:

var copySuccess,
    canPaste;

inputElementToCopy.select();
copySuccess = document.execCommand('copy');

inputElementToPaste.select();
canPaste = document.execCommand('paste');

if (canPaste) {
    copySuccess = inputElementToPaste.value === inputElementToCopy.value;

    // Since IE supports paste,
    // if user allowed clipboard: copySuccess === true
    // else: copySuccess === false
}
Run Code Online (Sandbox Code Playgroud)