试图抑制退格键和F5键同时也抑制了小写字母"按钮
Trying to suppress the backspace and F5 button is also suppressing the lower case "t" button
我试图阻止用户在输入一些文本时离开页面。我是通过按下F5键和退格键来做到这一点的。
现在我注意到我不能按t。当我检查日志时,这是因为t给了我一个116的键事件代码,与F5按钮相同。
我怎样才能绕过这个?
下面是一个代码片段:
function suppressBackspaceAndF5(evt) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;
// when I release "t" - the code is 116, which is the same as the refresh code.
console.log(evt.keyCode);
if ((evt.keyCode == 8 &&
!/input|textarea/i.test(target.nodeName)) ||
evt.keyCode == 116) {
return false;
}
}
document.onkeydown = suppressBackspaceAndF5;
document.onkeypress = suppressBackspaceAndF5;
<input></input>
我发现这个相关的Stackoverflow问题似乎包含了你的答案。专门在这里发布作为参考:
在javascript中使用window.event. keycode捕获f5按键事件。Onbeforeunload事件总是0而不是116
节选自SO用户Sim_ba
不要用e.keyCode == 166,用e.code == 'F5'代替。
function fkey(e){
e = e || window.event;
if( wasPressed ) return;
function fkey(e){
e = e || window.event;
if (e.code === 'F5') {
alert("f5 pressed");
wasPressed = true;
}else {
alert("Window closed");
}
}
也去给Sim_ba投票吧!:)这是因为't'和'F5'都使用了键码116。[…]
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在输入字段中将最小金额设置为
- 铬:“;未捕获的语法错误:意外的标记:"
- 砌体不能填补小缺口
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 限制javascript变量的最小/最大整数
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 使用“+="操作人员
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 如何's css标记"-webkit最小设备像素比”;在Javascript中实现
- "“照片擦除”;画廊关闭自己的图像点击在小图像的情况下
- 小黑""空间
- "无法读取属性'findDOMNode'未定义的“;当使用React小部件时
- "禁用“;(灰色文本,没有鼠标/键盘)jQueryUI小部件和容器中的常规HTML
- "最佳“;用JavaScript或服务器端C生成约500个小图像的方法
- "映射“;小Schemer对coderbyte的挑战:资本化