这是我的代码:
$(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中都可以正常工作)。
尽管不能完全回答您的问题,但我希望可以根据我自己尝试解决此问题的经验提供一些见解。