javascript - 如何禁用浏览器的默认帮助功能

标签 javascript jquery cross-browser dom-events

我想禁用或覆盖浏览器的默认帮助功能。

我尝试查看一些在线示例,但它们对我不起作用。 (以下代码适用于 Firefox 和 Chrome,但不适用于 Opera 和 IE)

<html>
<title>
</title>
<body>
    <script src = "jquery-1.7.1.min.js" text="type="text/javascript""></script>
    <script language="javascript" type="text/javascript">           
            document.onkeydown = function(event)
            {
                if(window.event && window.event.keyCode == 112)
                {
                     event.stopPropagation();
                     event.preventDefault();
                     event.keyCode = 0;
                     return false;
                    //document.onhelp = new Function("return false;");
                    //window.onhelp = new Function("return false;");
                    //helpFunction();

                }
                else if(event.which == 112)
                {
                    helpFunction();
                }
            };
            var false_function = new function(){"return false";};
            shortcut.add("f1",false_function);
        var helpFunction = function() {
            alert('help');
        }
    </script>
    <h2>Test</h2>
</body>

最佳答案

我找到了 here这段代码被要求在每个版本的 IE 和 FF 中工作

<script type="text/javascript">

function avoidInvalidKeyStorkes(evtArg) {
    var evt = (document.all ? window.event : evtArg);
    var isIE = (document.all ? true : false);
    var KEYCODE = (document.all ? window.event.keyCode : evtArg.which);

    var element = (document.all ? window.event.srcElement : evtArg.target);
    var msg = "We have disabled this key: " + KEYCODE;

    if (KEYCODE == "112") {
        if (isIE) {
            document.onhelp = function() {
                return (false);
            };
            window.onhelp = function() {
                return (false);
            };
        }
        evt.returnValue = false;
        evt.keyCode = 0;
        window.status = msg;
        evt.preventDefault();
        evt.stopPropagation();
        alert(msg);
    }

    window.status = "Done";    
}    

if (window.document.addEventListener) {
    window.document.addEventListener("keydown", avoidInvalidKeyStorkes, false);
} else {
    window.document.attachEvent("onkeydown", avoidInvalidKeyStorkes);
    document.captureEvents(Event.KEYDOWN);
}

</script>

工作 JSFiddle .请注意,您必须在单击结果 选项卡后对其进行测试。

关于javascript - 如何禁用浏览器的默认帮助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019278/

相关文章:

Javascript:焦点不是函数

jquery - 表单获取方法: prevent empty fields from submittion in query string

javascript - 跨浏览器编程的最佳工具是什么?

html - 中间带有单词的水平线的CSS技术

javascript - 我怎样才能实现react-bootstrap组件100%的可重用性?

javascript - 如何在独立于主题的节点页面添加css和js文件?

javascript - 遍历数组时处理数学表达式

javascript - 当删除一个克隆 div 时对克隆 div 重新编号

javascript - 让 jReject 工作的问题

css - 浏览器如何处理无法识别的规则?