在编辑时如何在GreaseMonkey中禁用热键?
时间:2020-03-05 18:47:21 来源:igfitidea点击:
我在GreaseMonkey脚本中使用Ctrl + Left / Ctrl + Right作为热键来回退/前进页面。看来工作正常,但是如果我在文本编辑区域中,则想禁用此行为。我正在尝试使用document.activeElement获取页面活动元素并测试它是否为可编辑区域,但它始终返回"未定义"。
解决方案
回答
document.activeElement适用于FF3,但以下内容也适用
(function() { var myActiveElement; document.onkeypress = function(event) { if ((myActiveElement || document.activeElement || {}).tagName != 'INPUT') // do your magic }; if (!document.activeElement) { var elements = document.getElementsByTagName('input'); for(var i=0; i<elements.length; i++) { elements[i].addEventListener('focus',function() { myActiveElement = this; },false); elements[i].addEventListener('blur',function() { myActiveElement = null; },false); } } })();
回答
element.activeElement是HTML5规范的一部分,但大多数浏览器均不支持。它最初是由IE引入的。