我正在使用onkeyup和onkeydown函数之类的事件。在这种情况下,我尝试使用Java脚本单独禁用printscr。我用alt键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也没有得到警报。我该怎么办?我有什么地方犯错了吗?
最佳答案
查看用于停止事件的特定于浏览器的文档:
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");
}
};
})();