编辑:等待过了一会儿,并没有得到任何东西,我决定 只为 IE快捷方式做啄禁用现在。是否有可能禁用 IE快捷键访问菜单/打印 等通过VBScript?禁用Internet Explorer快捷键
是否有可能禁用浏览器的快捷键?
因为他们很多都在使用中的应用程序。例如,按Ctrl +p使用,我不希望浏览器弹出打印窗口。
编辑:等待过了一会儿,并没有得到任何东西,我决定 只为 IE快捷方式做啄禁用现在。是否有可能禁用 IE快捷键访问菜单/打印 等通过VBScript?禁用Internet Explorer快捷键
是否有可能禁用浏览器的快捷键?
因为他们很多都在使用中的应用程序。例如,按Ctrl +p使用,我不希望浏览器弹出打印窗口。
是的,你可以听与JavaScript的各种组合键和禁用默认的行为。甚至有一个图书馆,你可以使用和测试here。我只是在他们的demo textarea中使用google chrome和firefox进行了测试,并且可以按照您的需要进行操作。
shortcut.add("Ctrl+P",function() {
return;
});
这适用于上面列出的浏览器,但IE不允许您在某些情况下覆盖默认行为。
你在IE中唯一的选择就是用像完全禁用Ctrl键:
document.onkeydown = function() {
if (event.keyCode == 17) alert('Ctrl Key is disabled');
};
这是不理想,可能不是你想要的,但它会奏效。
Ctrl + P :( – 2009-07-15 09:42:14
)我在使用下面的“Live Execution”面板感到很厌倦,我把键从“Ctrl + Shift + X”更改为“Ctrl + P”,它显示打印窗口。这意味着浏览器仍在监听密钥。我正在使用firefox 3. – 2009-07-15 09:45:13
有一些操作你不能禁用 – Boldewyn 2009-07-15 09:47:39
您可以尝试创建keydown事件的事件处理程序,检查的键码,防止其默认动作如果需要的话。但是,这不适用于所有浏览器。
为Firefox(取消“打印”短项,验证)的一个例子:
document.addEventListener("keydown", function(oEvent) {
if (oEvent.keyCode == 80 && oEvent.ctrlKey)
oEvent.preventDefault();
}, false)
我对类似问题的工作,hooking keyboard event下面代码工作很好地禁用,除了闪光物体上的IE浏览器有没有得到了重点。由于我正在尝试处理Flash对象上的键盘事件,因此此代码对我无效。
function hookKeyboardEvents(e) {
// get key code
var key_code = (window.event) ? event.keyCode : e.which;
// case :if it is IE event
if (window.event)
{
if (!event.shiftKey && !event.ctrlKey) {
window.event.returnValue = null;
event.keyCode = 0;
}
}
// case: if it is firefox event
else
e.preventDefault();
}
window.document.onkeydown = hookKeyboardEvents;
从您的应用程序调用上按Ctrl + P的方法只是使键码为zero.I认为,这将解决您的问题后...
window.event.keyCode = 0;
这将设置的键码作为zero..So当键代码资源管理器检查,这将是零......所以默认功能将不执行......
试试这个...只是一个建议
这适用于IE 8中的重要部分,IE需要将ev.returnValue设置为false。注意:这只有在你关注文档中的某个元素时才有效......也就是说,如果你只是加载页面并点击'ctrl-p',你会看到打印对话框。但是,如果你点击页面上的某个地方,然后尝试它,它应该禁止打印对话框。
document.onkeydown = function (e) {
var ev = e||window.event;
// Do what I want keys to do ...
// Block browser short cuts
if(ev.preventDefault) // non-IE browsers
ev.preventDefault();
else // IE Only
ev.returnValue = false;
};
有一个很好的把戏与IE10 +打,以避免Alt组合键显示浏览器菜单,像Alt + F
,Alt + H
...
我最近在IE11中使用,只需添加一个锚与对你的身体
<body>
<a href="#" accesskey="f"></a>
<script type="text/javascript">
window.onkeydown = function(e){
console.log(e.keyCode + " alt: " + e.altKey);
e.preventDefault();
};
window.onkeyup = function(e){
console.log(e.keyCode + " alt: " + e.altKey);
e.preventDefault();
};
</script>
</body>
现在[yourKey]
当你按下Alt + f
浏览器不会显示“文件弹出”像往常一样,并让事件KeyDown和KEYUP得到:属性accesskey
对你而言,而不仅仅是分身。
你是否设法让这个工作?我遇到了同样的问题,但仍找不到解决方案。 – 2014-10-06 14:14:25
@DianaAmza,我找不到解决方案。 IE不会允许您覆盖默认行为。 – 2014-10-10 07:21:57
好的,谢谢! – 2014-10-13 08:01:57