禁用右键单击上下文菜单 - 仍然可以在Chrome的标题栏上找到它

时间:2012-04-13 14:17:09

标签: javascript google-chrome right-click titlebar

我试图避免用户使用后退按钮,这是如此之好,直到我尝试获取上下文菜单,右键单击Chrome的标题栏我看到其他页面没有我这样做的选择。

我使用了这段代码:

    < script type="text/javascript">
        function disableBackButton() {
            window.history.forward(1);
        }
        setTimeout("disableBackButton()", 0);
        window.oncontextmenu = function() { return false }

    </ script>

< script type="text/javascript">

    if (typeof window.event != 'undefined')
        document.onkeydown = function() {
            if (event.srcElement.tagName.toUpperCase() != 'INPUT')
                return (event.keyCode != 8);
        }
    else
        document.onkeypress = function(e) {
            if (e.target.nodeName.toUpperCase() != 'INPUT')
                return false;
        }

</ script>

< script type="text/javascript">
    document.onkeydown = chkEvent
    var formInUse = false;

    function chkEvent(e) {
        var keycode;
        if (window.event) keycode = window.event.keyCode; //*** for IE ***//
        else if (e) keycode = e.which; //*** for Firefox ***//
        if (keycode == 8) {
            return false;
        }
    }
</ script>    
< body onload="disableBackButton();"  >

< script type="text/javascript"> function disableBackButton() { window.history.forward(1); } setTimeout("disableBackButton()", 0); window.oncontextmenu = function() { return false } </ script> < script type="text/javascript"> if (typeof window.event != 'undefined') document.onkeydown = function() { if (event.srcElement.tagName.toUpperCase() != 'INPUT') return (event.keyCode != 8); } else document.onkeypress = function(e) { if (e.target.nodeName.toUpperCase() != 'INPUT') return false; } </ script> < script type="text/javascript"> document.onkeydown = chkEvent var formInUse = false; function chkEvent(e) { var keycode; if (window.event) keycode = window.event.keyCode; //*** for IE ***// else if (e) keycode = e.which; //*** for Firefox ***// if (keycode == 8) { return false; } } </ script> < body onload="disableBackButton();" >

在我看来,没有太多事情要做,而且那是操作系统领域,但如果有人知道这一点,值得一试

亲切的问候

乔治

1 个答案:

答案 0 :(得分:1)

绝对不能也绝不允许在网页沙箱之外做任何事情。即使您不小心在某些浏览器中找到了这样做的方法,也不要依赖它,因为它会被视为巨大的安全风险,并且会被开发人员迅速修补或缩减为某些隐藏标记激活的kludge。只是完全违背浏览器的沙盒环境试图完成的想法,所以它不适用于任何公共项目。