Javascript 如何在IE中禁用Alt Enter?
IE的默认行为是在Alt Enter命令下切换到全屏模式。我必须避免这种情况,并且必须附加自定义行为 它可行吗?不是JavaScript,不是 这是应用程序的一种行为,您实际上无法控制它(除了浏览器扩展等) 您可以尝试捕捉页面上的按键,但这不会阻止用户轻松绕过它 有关键的字符代码列表,请参见。我敢肯定,它捕捉按键组合是不可靠的 此外,IE中的Alt+Enter会导致预期行为,您不应试图通过网页覆盖该行为 不在JavaScript中,不在 这是应用程序的一种行为,您实际上无法控制它(除了浏览器扩展等) 您可以尝试捕捉页面上的按键,但这不会阻止用户轻松绕过它 有关键的字符代码列表,请参见。我敢肯定,它捕捉按键组合是不可靠的Javascript 如何在IE中禁用Alt Enter?,javascript,internet-explorer,javascript-events,Javascript,Internet Explorer,Javascript Events,IE的默认行为是在Alt Enter命令下切换到全屏模式。我必须避免这种情况,并且必须附加自定义行为 它可行吗?不是JavaScript,不是 这是应用程序的一种行为,您实际上无法控制它(除了浏览器扩展等) 您可以尝试捕捉页面上的按键,但这不会阻止用户轻松绕过它 有关键的字符代码列表,请参见。我敢肯定,它捕捉按键组合是不可靠的 此外,IE中的Alt+Enter会导致预期行为,您不应试图通过网页覆盖该行为 不在JavaScript中,不在 这是应用程序的一种行为,您实际上无法控制它(除了浏览器扩展
此外,IE中的Alt+Enter会导致预期行为,您不应试图通过网页覆盖该行为 既然你不能打败他们,就加入他们吧。也就是说,既然你可以捕获事件但不能阻止它,那么在用户按下alt+enter键后,在超时时间内运行相同的命令怎么样 例如:
<script type="text/javascript">
document.onkeydown = handleHotKeys;
function handleHotKeys(e) {
var keynum = getKeyCode(e);
var e = e || window.event;
if (keynum==13 && e.altKey) { // handle enter+alt
setTimeout("toggleFullscreenMode",100);
}
}
function getKeyCode(e){
if (!e) { // IE
e=window.event;
return e.keyCode;
} else { // Netscape/Firefox/Opera
return e.which;
}
}
function toggleFullscreenMode() {
var obj = new ActiveXObject("Wscript.shell");
obj.SendKeys("{F11}");
}
</script>
document.onkeydown=handleHotKeys;
功能手柄热键(e){
var-keynum=getKeyCode(e);
var e=e | | window.event;
如果(keynum==13&&e.altKey){//handle回车+alt
setTimeout(“toggleFullscreenMode”,100);
}
}
函数getKeyCode(e){
如果(!e){//IE
e=窗口事件;
返回e.keyCode;
}else{//Netscape/Firefox/Opera
返回e.which;
}
}
函数toggleFullscreenMode(){
var obj=新的ActiveXObject(“Wscript.shell”);
obj.SendKeys(“{F11}”);
}
免责声明:在IE8中测试。您必须查看浏览器和版本,才能使其适用于目标浏览器的特定版本。这还假设用户将启用javascript和activex对象。既然你不能打败他们,就加入他们。也就是说,既然你可以捕获事件但不能停止它,那么在用户按下alt+enter键后,在超时时间内运行相同的命令怎么样 例如:
<script type="text/javascript">
document.onkeydown = handleHotKeys;
function handleHotKeys(e) {
var keynum = getKeyCode(e);
var e = e || window.event;
if (keynum==13 && e.altKey) { // handle enter+alt
setTimeout("toggleFullscreenMode",100);
}
}
function getKeyCode(e){
if (!e) { // IE
e=window.event;
return e.keyCode;
} else { // Netscape/Firefox/Opera
return e.which;
}
}
function toggleFullscreenMode() {
var obj = new ActiveXObject("Wscript.shell");
obj.SendKeys("{F11}");
}
</script>
document.onkeydown=handleHotKeys;
功能手柄热键(e){
var-keynum=getKeyCode(e);
var e=e | | window.event;
如果(keynum==13&&e.altKey){//handle回车+alt
setTimeout(“toggleFullscreenMode”,100);
}
}
函数getKeyCode(e){
如果(!e){//IE
e=窗口事件;
返回e.keyCode;
}else{//Netscape/Firefox/Opera
返回e.which;
}
}
函数toggleFullscreenMode(){
var obj=新的ActiveXObject(“Wscript.shell”);
obj.SendKeys(“{F11}”);
}
免责声明:在IE8中测试。您必须查看浏览器和版本,才能使其适用于目标浏览器的特定版本。这还假设用户将启用javascript和activex对象。但我没有选择。我必须实现每一项功能,这只是其中的一项:(.我知道阻止默认事件不是一种正确的做法,不应该这样做。但必须以这种方式交付:)您也面临着技术障碍。您可以为ALT维护一个状态变量(按下键时设置为true,上键时设置为false)和为enter维护一个状态变量(条件同上),并检查这两个状态变量是否为true,然后尝试
返回false
以防止默认操作。很有可能IE对该组合键的处理将优先于页面想要做的任何事情。Jonathan,我设法识别了alt-enter复合键。但无法使用“event.cancelBubble”、“event.returnValue”阻止事件冒泡,如我所想。IE防止这种虐待。你只需告诉你的客户/雇主这是不可能的,然后看看备选方案SEE用户适用性说明#2但我别无选择。我必须实现每一项功能,这只是其中的一项:(.我知道阻止默认事件不是一种正确的做法,不应该这样做。但必须以这种方式交付:)您也面临着技术障碍。您可以为ALT维护一个状态变量(按下键时设置为true,上键时设置为false)和为enter维护一个状态变量(条件同上),并检查这两个状态变量是否为true,然后尝试返回false
以防止默认操作。很有可能IE对该组合键的处理将优先于页面想要做的任何事情。Jonathan,我设法识别了alt-enter复合键。但无法使用“event.cancelBubble”、“event.returnValue”阻止事件冒泡,如我所想。IE防止这种虐待。您只需告诉您的客户/雇主这是不可能的,并查看备选方案请参见用户适用性说明#2只有当用户启用了不安全的ActiveX控件(例如WScript.Shell)时,这才有效,因此不适用于任何Internet或Intranet页面。只有当用户启用了不安全的ActiveX控件时,这才有效(例如WScript.Shell),因此不适用于任何Internet或Intranet页面。