我试图在我的webapp中embedded一些键盘绑定,而且我正在用Opera很难。 我有这个代码:
window.onkeydown = function(e){ var key = e.keyCode ? e.keyCode : e.charCode ? e.charCode : false; if (e.ctrlKey && key === 84) { alert("foo"); e.preventDefault(); // return false; } }
它在Firefox和Chrome中很有魅力,但Opera仍然会打开新标签页。 return false;
。
我的信息: Opera/9.80 (X11; Linux i686; U; en) Presto/2.7.62 Version/11.00
Opera 不支持 keydown
上的preventDefault
,仅在keypress
。
正如你在这个例子中看到的,你应该绑定一个单独的keypress
处理程序的Opera(适应你的情况):
var cancelKeypress = false; document.onkeydown = function(evt) { evt = evt || window.event; cancelKeypress = (evt.ctrlKey && evt.keyCode == 84); if (cancelKeypress) { return false; } }; /* For Opera */ document.onkeypress = function(evt) { if (cancelKeypress) { return false; } };