Firefox防止alt-key的默认

时间:2017-01-19 17:50:34

标签: javascript firefox javascript-events keyboard-events

我在Firefox 50.1.0上试图阻止菜单栏下拉(通过JS),这也是在按下alt键的同时按下一个键(例如s)触发的。

我尝试过preventDefault,stopPropagation和consorts但是无法以任何方式让它工作。我在这里或其他地方找不到任何有用的例子。

我试过的最明显的路径,但是没有用。

document.onkeydown = function (e) { e.preventDefault(); };

具有onkeypress或其他DOM元素的变体也不会。

有人可以向我提供一个vanilla JS示例,该示例禁用/阻止Firefox上的alt-s或类似的默认操作吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我认为在较新版本的Firefox上已禁用此功能。关于它的bugtracker近10年来一直在争论,最近又被重新开放了。

没有理由你的功能不起作用,我也没有成功使用更具体的event.altKey或其他一些排列。

如果你想确认我建议尝试使用旧版本的FF。

编辑:鉴于lleaff的评论之一,您使用的操作系统是什么?

答案 1 :(得分:0)

当用户关注页面时,您的解决方案有效。 当焦点不在网页istelf上时(例如,如果用户点击了地址栏),则无法阻止此行为。

答案 2 :(得分:0)

请注意,某些浏览器不允许您捕获某些快捷方式! Mozilla Firefox中 Alt + s 快捷方式的一个工作示例(版本:51.0.1,Linux ):

onkeydown = function(e){
  if(e.altKey && e.keyCode == 83){
    e.preventDefault();
    alert("Shotcut Pressed")
  }
}