在IE 6中禁用特定密钥

时间:2008-09-12 19:00:33

标签: internet-explorer-6 kiosk

我需要在Internet Explorer 6中禁用特定密钥(Ctrl和Backspace)。是否存在执行此操作的注册表黑客攻击。它必须是IE6。感谢。

长编辑:

@apandit:哎呀。我需要更具体地讨论退格的事情。当我说禁用退格键时,我的意思是禁用Backspace模仿Back浏览器按钮的功能。在IE中,当焦点不在文本输入字段中时按Backspace相当于按Back(浏览到上一页)。

至于Ctrl键。有些页面具有创建新IE窗口的链接。我打开了弹出窗口阻止程序,阻止了这个。但是,在正在启动的新窗口中按Ctrl键单击结果。

这适用于kiosk应用程序,该应用程序目前是基于Web的应用程序。客户目前没有资金使他们的网站亭友好。 URL过滤和禁用URL输入字段等内容已经完成。

感谢。

3 个答案:

答案 0 :(得分:0)

你出于什么目的需要这个?因为禁用退格键会输入网址或电子邮件等等。

如果我们更好地了解问题,我们可以推荐其他解决方法。

编辑1:
这个网站似乎有一些关于它是如何完成的信息。我目前无法验证它,但我会调查一下: http://www.ozzu.com/programming-forum/disable-key-and-back-t44867.html

编辑2:
本网站有一些关键代码: http://www.advscheduler.com/docs/manual/type_sendkeys.html 似乎BACKSPACE是08。

编辑3:
找到了更多阻止代码,请查看:


<script type="text/javascript">var sType = "keypress";</script> 

<!--[if IE]> 
<script type="text/javascript">sType = "keydown";</script> 
<![endif]--> 

<script type="text/javascript"> 
fIntercept = function(e) { 
   // alert(e.keyCode);
  e = e || event.e; 
  if (e.keyCode == 116) { 
   // When F5 is pressed 
   fCancel(e); 
  } else if (e.ctrlKey && (e.keyCode == 0 || e.keyCode == 82)) { 
   // When ctrl is pressed with R 
   fCancel(e); 
  } 
}; 

fCancel = function(e) { 
  if (e.preventDefault) { 
   e.stopPropagation(); 
   e.preventDefault(); 
  } else { 
   e.keyCode = 0; 
   e.returnValue = false; 
   e.cancelBubble = true; 
  } 
  return false; 
}; 

fAddEvent = function(obj, type, fn) { 
  if (obj.addEventListener) { 
   obj.addEventListener(type, fn, false); 
  } else { 
   obj['e'+type+fn] = fn; 
   obj[type+fn] = function() { 
    obj['e'+type+fn](window.event); 
   } 
   obj.attachEvent('on'+type, obj[type+fn]); 
  } 
}; 


fAddEvent(document, sType, fIntercept); 
</script> 

好的,现在你应该拥有所需的一切。要禁用退格键,键码为08.您可以只使用我发布的代码,只需稍加修改......:\

尝试一下,看看它是否是您需要的。 (我希望你知道如何使用Javascript。)

答案 1 :(得分:0)

您无法从网页上执行此操作。 Web浏览器的主要目的之一是保护用户免受Internet的侵害。它们定义了一组非常具体的网站可以做的事情,禁用按钮不在列表中。

另一方面,如果您是网络管理员并且只想弄乱用户,您可以通过某些桌面软件来实现。但我不会屏住呼吸。

答案 2 :(得分:0)

我正在使用这个jQuery解决方案(在ie6和firefox 3.6上测试):

$(document).keydown(function(e) {
    var tag = e.target.tagName;
    var ro = e.target.readOnly;
    var type = e.target.type;
    var tags = {
        INPUT : '',
        TEXTAREA : ''
    };
    if (e.keyCode == 8) {// backspace
        if (!(tag in tags && !ro && /text/.test(type))) {
            e.stopPropagation();
            e.preventDefault();
        }
    }
});    

希望它可以帮助某人