这是我的代码:
$(document).keyup(function (e) {
alert("felt something!");
if (e.keyCode == 44) {
alert("felt PS");
ccd();
}
});
function ccd() {
if (clipboardData) {
window.clipboardData.setData('text', '');
}
}在铬,ccd功能什么都不做(这很好),但信息“感觉PS”弹出每次我点击PS按钮。然而,在IE (7-9),我可以得到一个“感觉PS”信息出现。在那之后,点击PS没有什么作用,但击中任何其他关键原因是一个“感觉的东西!”
任何人都不知道是什么引起了这一问题?
发布于 2013-08-08 21:12:34
我没有足够的酷点来发表评论,但我知道这一点:
在中,只要先按下另一个键,打印屏幕的KeyUp事件就会触发一次--而且只有一次。通过再次按下另一个键,将再次检测到打印屏幕:但只有一次。
这可以跨页面工作,所以登录到一个网站,然后导航几个页面,然后点击打印屏幕:检测到。
让IE记住您下次访问时的登录,浏览相同的几页,点击打印屏幕:未检测到。
这就是为什么Chase更新的关于ALT +打印屏幕的答案是正确的。首先,通过降低alt,您已经导致了打印屏幕成为detected...once所必需的按键。
用Javascript创建的假键盘事件不足以人为地导致这种行为,不管是什么原因导致打印屏幕被检测到(或不)存在于IE本身(因为在Firefox中相同的JS工作得很好)。
虽然对你的问题没有一个完整的答案,但我希望能根据自己的经验提供一些洞察力,试图解决同样的问题。
发布于 2012-12-05 21:51:32
对于IE,您需要小心使用e,因为早期版本的IE使用全局window.event对象。尝试下面的代码:
$(document).keyup(function (e) {
if(!e) e = window.event; //check for e, otherwise use the global window.event
var keyCode = e.which || e.keyCode //changed as not all browsers use keyCode
alert("felt something!");
if (keyCode == 44) {
alert("felt PS");
ccd();
}
});
function ccd() {
if(window.clipboardData) { //changed to look for window.clipboardData instead otherwise throws an error in other browsers.
window.clipboardData.setData('text', '');
}
}请注意上面的注释行,我已经更改了您的代码。
示例
更新
有可能您必须按ALT +打印屏幕,以便事件为该键注册。我不能百分之百确定为什么在目前,所以如果其他人碰巧知道,请编辑答案或留在评论中。
**也请注意经修订的守则。
https://stackoverflow.com/questions/13732771
复制相似问题