为什么触发F11按键事件不起作用?

我只是按下按钮而不是F11来阅读这个问题: 全屏页面
操作要求用其他热键替换F11 ,所以我想知道我可以模拟按F11来使事情有效。
我了解到我可以在JQuery中使用触发器来模拟按键事件,所以我做了类似这样的事情:

$("body").keyup(function (e) { alert(e.which); }); var e = $.Event("keyup"); e.which = 122; // # Key code of F11 $("body").trigger(e); 

当我运行这个时,我得到警告说122,但它似乎没有给出希望的结果。 那里有限制吗?

我在这里做了一个小提琴: http : //jsfiddle.net/ap295/5/

我认为这是一个:)来检测它…

 $(document).keyup(function(e){ if(e.which==122){ e.preventDefault();//kill anything that browser may have assigned to it by default //do what ever you wish here :) alert('F11 pressed'); return false; } }); 

但触发它( 不可能

但你不会阻止浏览器全屏显示:) … Reson给出的是,让我说我已经完全筛选了它,并希望使用F11切换它但你阻止我,我将不得不重新启动PC ,[计算机文盲]这会带来安全风险,因为你阻止用户做他期望做的事情,他们可能认为PC坏了或者什么东西:)所以……你就是这样。

你不能做这个。 该问题中的链接答案为jQuery提供了一种在jQuery事件框架内模拟按键的方法。

你根本无法触发或伪造按键。 所以这个问题的答案是:

不,这是不可能的

您将无法从网页中覆盖浏览器的内置热键。

可以在浏览器扩展中执行此操作,但这肯定会严重过度,只是为了更改应用程序的热键。

无论如何,为什么你甚至想要覆盖标准键盘快捷键? 我不明白。 它们已经成为标准很长一段时间了; 大多数用户都会熟悉它们,并且如果它们被改为别的东西,就会觉得很奇怪。

不要把它看作是“如何触发F11?”的问题。 – 看看是“如何触发或模拟全屏?”

使用旧版本的IE,您可以直接打开全新窗口:

 window.open(someURLorOther, '', 'fullscreen=yes, scrollbars=auto'); 

或者您可以使用window.open打开特定大小的新窗口。

或者您可以尝试调整当前窗口的大小以填充屏幕:

 moveTo(0,0); resizeTo(screen.availWidth,screen.availHeight); 

然而, 仅仅因为你并不意味着你应该永远不应该调整当前窗口的大小 – 这几乎让每个人都感到烦恼。 打开一个你选择的大小的新窗口是更合理的,但如果它太大可能会令人讨厌,并且在正常的网页上(“正常”我可能不是某种基于浏览器的数据输入应用程序)不开新窗户更好。