如何在IE8中单击按钮时以全屏模式打开当前窗口

时间:2012-05-25 18:17:19

标签: jquery asp.net-mvc-2 internet-explorer-8 fullscreen

我在我的MVC代码中应用了一个jquery函数,用于在按钮单击时以全屏模式显示当前窗口。这是jquery: -

function FullScreen() {
    if ((document.fullScreenElement && document.fullScreenElement !== null) || // alternative standard method
    (!document.mozFullScreen && !document.webkitIsFullScreen)) { // current working methods
        if (document.documentElement.requestFullScreen) {
            document.documentElement.requestFullScreen();
        } else if (document.documentElement.mozRequestFullScreen) {
            document.documentElement.mozRequestFullScreen();
        } else if (document.documentElement.webkitRequestFullScreen) {
            document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
        }
    } else {
        if (document.cancelFullScreen) {
            document.cancelFullScreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        }
    }
}

我在标签的onclick事件上调用了这个函数。 有了这个,我可以在Chrome和Mozilla上以全屏模式按下按钮打开我的窗口,并在按ESC键时退出全屏模式。但在IE8中,当我点击按钮时没有任何反应。我怎样才能使这个功能适用于IE8。 有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:1)

如果浏览器支持全屏API(Chrome,FX10,Safari 6,Opera 12.1),那么您可以使用它。

如果没有(例如IE8),那么出于安全原因你不应该模仿它:如果我可以创建一个全屏运行而不先通知用户的页面,那么我可以模仿OS界面元素要求输入密码等。

以下是how a phishing scam might work的一个很好的例子。

此安全原因是WebKit实现禁用键盘输入的原因。

IE用于支持无铬弹出窗口,但这是removed as a security bug in IE6

例如,您可以尝试发送F11键:

var shell = new ActiveXObject("WScript.Shell");
shell.SendKeys("{F11}");

但这不应该在互联网环境中被允许(它可能在受信任的域中,具体取决于用户设置)。

无论如何,IE10全屏运行(默认情况下),所以仍然不支持此API。

答案 1 :(得分:0)

抱歉,IE8尚不支持全屏API。 Here是关于使用全屏API的好文章。它还指出Internet Explorer没有全屏API支持。

  

目前还没有Internet Explorer或Opera支持,但我愿意   建议你使用'ms'和'o'前缀进行未来验证。