10

我刚刚读到这个问题:Full Screen Page by press button 而不是 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/

4

4 回答 4

11

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

$(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;
   }
});

但触发它(不可能

但是您不会阻止浏览器全屏显示:) ...给出的原因是,假设我以某种方式全屏显示它,并希望使用它来切换它,F11但你阻止了我,我将不得不重新启动PC, [计算机文盲] 这会带来安全风险,因为您正在阻止用户做他期望做的事情,他们可能会认为 PC 坏了或其他什么:) 所以......你来了。

于 2011-06-21T16:09:03.327 回答
10

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

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

不,这是不可能的

于 2011-06-21T16:13:00.800 回答
3

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

也许可以在浏览器扩展中做到这一点,但仅仅改变应用程序的热键肯定是严重的矫枉过正。

无论如何,您为什么还要覆盖标准键盘快捷键?我不明白。它们已经成为标准很长时间了。大多数用户都会熟悉它们,并且如果将它们更改为其他东西会觉得很奇怪。

于 2011-06-21T16:15:09.693 回答
2

不要看是“我如何触发F11?”的问题。- 看是“我如何触发或模拟全屏?”

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

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

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

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

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

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

于 2011-06-22T04:34:46.623 回答