我刚读过这个问题:Full Screen Page by pressing button instead of 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/
答案 0 :(得分:10)
我认为这是一个:)来检测它......
$(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;
}
});
但触发它( NOT POSSIBLE )
但你不会阻止浏览器全屏:) ... Reson给出的是,让我说我已经以某种方式完全筛选了它,并希望使用 F11 来切换它,但是你正在阻止我,我将不得不重新启动PC,[计算机文盲]这会带来安全性风险,因为你阻止用户做他期望做的事情,他们可能认为PC坏了或者什么东西:)所以......你在那里。
答案 1 :(得分:10)
你不能这样做。该问题中的链接答案为jQuery提供了一种在jQuery事件框架内模拟按键的方法。
你根本无法触发或伪造按键。所以这个问题的答案是:
不,这是不可能的
答案 2 :(得分:3)
您将无法在网页中覆盖浏览器的内置热键。
你可能能够在浏览器扩展程序中执行此操作,但这肯定会严重过度,只是为了更改应用程序的热键。
在任何情况下,为什么你甚至想要覆盖标准键盘快捷键?我不明白。它们已经成为标准很长一段时间了;大多数用户都会熟悉它们,并且如果它们被改为别的东西,就会觉得很奇怪。
答案 3 :(得分:1)
不要看“是如何触发F11?”的问题 - 看看是“如何触发或模拟全屏?”
使用旧版本的IE,您可以直接打开全新窗口:
window.open(someURLorOther, '', 'fullscreen=yes, scrollbars=auto');
或者您可以使用window.open
打开特定尺寸的新窗口。
或者您可以尝试调整当前窗口的大小以填充屏幕:
moveTo(0,0);
resizeTo(screen.availWidth,screen.availHeight);
然而只是因为你可以并不意味着 。你永远不会调整当前窗口的大小 - 这几乎让所有人都感到恼火。打开一个你选择的大小的新窗口是更合理的,但如果它太大可能会令人烦恼,并且在正常的网页上(“正常”我可能意味着不是某种基于浏览器的数据输入应用程序)不打开新窗户会更好。