这是我的代码:

$(document).keyup(function (e) {
    alert("felt something!");
    if (e.keyCode == 44) {
        alert("felt PS");
        ccd();
    }
});

function ccd() {
    if (clipboardData) {
        window.clipboardData.setData('text', '');
    }
}


在chrome中,ccd功能什么也不做(这很好),但是每次我按下PS按钮时,都会弹出“ Felt PS”消息。但是,在IE(7-9)中,我可以看到一条“ Felt PS”消息。此后,按PS不会执行任何操作,但是按其他键会导致“感觉到东西!”。

任何人都有什么想法可能导致此问题?

最佳答案

我没有足够的冷静点来发表评论,但是我知道这一点:

在Internet Explorer中,前提是首先按下另一个键,则打印屏幕的KeyUp事件将触发一次(也只有一次)。再次按下另一个键,将再次检测到打印屏幕:但是只有一次。

这适用于整个页面,因此登录到一个网站,然后浏览多个页面,然后点击打印屏幕:已检测到。

让IE在下次访问时记住您的登录信息,浏览相同的几页,点击打印屏幕:未检测到。

这就是为什么Chase关于ALT + Print Screen的更新答案是正确的。首先按下alt,就导致检测到打印屏幕所需的按键...一次。

用Javascript创建的伪造的键盘事件不足以人为地诱发此行为,无论是导致(或不被)检测到打印屏幕的原因在于IE本身(因为相同的JS在Firefox中都可以正常工作)。

尽管不能完全回答您的问题,但我希望可以根据我自己尝试解决此问题的经验提供一些见解。

09-17 09:34