1

我在我的 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。有什么建议么?

谢谢。

4

2 回答 2

1

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

如果不是(例如 IE8),那么出于安全原因,您不应该模仿它:如果我可以创建一个全屏运行的页面而不先通知用户,那么我可以模仿要求输入密码的操作系统界面元素之类的。

这是网络钓鱼诈骗如何运作的一个很好的例子。

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

IE 曾经支持 chrome-less 弹出窗口,但这在 IE6 中作为安全漏洞被删除

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

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

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

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

于 2012-11-19T12:25:14.140 回答
0

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

Internet Explorer 或 Opera 尚不支持,但我建议您使用 'ms' 和 'o' 前缀以备将来验证。

于 2012-05-25T21:50:04.597 回答