的所有人。 我使用像onkeyup和onkeydown函数这样的事件。在那我试图使用javascript单独禁用printscr。我用Google搜索,其中ASCII键为18,Printscr为44。
这是我试图禁用的代码。
document.onkeyup = function(e)
{
if (e.which === 44)
{
alert('alt key pressed');
return false;
}
};
var isAlt = false;
document.onkeydown = function(e)
{
if (e.which === 18) {
isAlt === true;
if (((e.which === 44)) && isAlt === true)
{
alert('tested printscreen');
return false;
}
}
};
在该keyup警报正在工作,但返回false未触发。另外对于alt + printscr也没有得到警报。我该怎么办我犯了什么错误。
谢谢, 维基
答案 0 :(得分:1)
查看用于停止事件的浏览器特定文档:
e.stopPropagation()
此外,在键盘中,文本框可能已经填充了重复键的多个字符。在按键时,您需要存储该值。在密钥中,如果您获得44密钥,则恢复该值。而且,您需要将键处理程序放在窗口上,而不是文档。
(function() {
var savedValue;
window.onkeyup = function(e) {
if (e.altKey && e.which === 44) {
alert('alt key pressed');
if (undefined !== savedValue) {
e.target.value = savedValue;
savedValue = undefined;
}
return;
}
};
window.onkeydown = function(e) {
if (undefined === savedValue) {
savedValue = e.target.value;
}
if (e.altKey && e.which === 44) {
alert("tested printscr");
}
};
})();