如何使用 Javascript 使窗口全屏显示(在整个屏幕上拉伸)

IT技术 javascript fullscreen
2021-01-09 06:49:31

如何使用 JavaScript 使访问者的浏览器以适用于 IE、Firefox 和 Opera 的方式全屏显示?

6个回答

在 Chrome 15、Firefox 10、Safari 5.1、IE 10 等较新的浏览器中,这是可能的。根据浏览器设置,旧版 IE 也可以通过 ActiveX 使用。

这是如何做到的:

function requestFullScreen(element) {
    // Supports most browsers and their versions.
    var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen;

    if (requestMethod) { // Native full screen.
        requestMethod.call(element);
    } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
        var wscript = new ActiveXObject("WScript.Shell");
        if (wscript !== null) {
            wscript.SendKeys("{F11}");
        }
    }
}

var elem = document.body; // Make the body go full screen.
requestFullScreen(elem);

用户显然需要首先接受全屏请求,并且不可能在页面加载时自动触发,它需要由用户触发(例如按钮)

阅读更多:https : //developer.mozilla.org/en/DOM/Using_full-screen_mode

太棒了,有什么办法可以退出全屏?
2021-03-10 06:49:31
目前在 Chrome 15、Firefox 10 和 Safari 5.1 中可用。有关当前播放状态的详细信息,请参阅此hacks.mozilla.org 博客文章
2021-03-17 06:49:31
IE 的拼写错误应该是 msRequestFullScreen,如文档msdn.microsoft.com/en-us/library/ie/dn265028(v=vs.85).aspx
2021-03-27 06:49:31
它只能由用户触发(例如通过全屏按钮)。无法在加载期间自动全屏。
2021-03-30 06:49:31
一些东西。在 IE 中,这显然会忽略元素并全屏显示所有内容。如果您确实想全屏显示所有传入的内容,document.documentElement这将确保您获得正确的根元素('html' 或 'body')。并且使用可以cancelFullscreen()用来关闭它(或再次发送'F11'为IE)。
2021-04-09 06:49:31

此代码还包括如何为 Internet Explorer 9 和可能的旧版本以及最新版本的 Google Chrome 启用全屏。接受的答案也可用于其他浏览器。

var el = document.documentElement
    , rfs = // for newer Webkit and Firefox
           el.requestFullscreen
        || el.webkitRequestFullScreen
        || el.mozRequestFullScreen
        || el.msRequestFullscreen
;
if(typeof rfs!="undefined" && rfs){
  rfs.call(el);
} else if(typeof window.ActiveXObject!="undefined"){
  // for Internet Explorer
  var wscript = new ActiveXObject("WScript.Shell");
  if (wscript!=null) {
     wscript.SendKeys("{F11}");
  }
}

资料来源:

@Peter O.“应该放在事件处理程序中”,有什么方法可以触发它加载?
2021-03-15 06:49:31
感谢“(但请注意,requestFullScreen“仅适用于”“[大多数]UIEvents 和 MouseEvents,例如单击和按键等”,“因此它不能被恶意使用”。)”
2021-03-21 06:49:31
适用于 IE 8 以上,FF10 以上(在 FF 9 中试过,不起作用),在 Chrome 18 上测试
2021-04-02 06:49:31
documentElement的比body更好
2021-04-05 06:49:31
@FrancisP:不;“load”和“DOMContentLoaded”都不是适用于全屏 API 的 UIEvent 或 MouseEvent。
2021-04-08 06:49:31

这是在 JavaScript 中尽可能接近全屏:

<script type="text/javascript">
    window.onload = maxWindow;

    function maxWindow() {
        window.moveTo(0, 0);

        if (document.all) {
            top.window.resizeTo(screen.availWidth, screen.availHeight);
        }

        else if (document.layers || document.getElementById) {
            if (top.window.outerHeight < screen.availHeight || top.window.outerWidth < screen.availWidth) {
                top.window.outerHeight = screen.availHeight;
                top.window.outerWidth = screen.availWidth;
            }
        }
    }
</script> 
取决于您在选项中的 javascript 权限设置。您可以切换 js 对窗口功能的控制。
2021-03-10 06:49:31
看看 webkit-fullscreen API:出血边缘-tlv.appspot.com/#28(来自#gdd2011)
2021-03-24 06:49:31
这是旧的。在下面寻找解决方案!
2021-03-25 06:49:31
查看 haim evgi 发布的链接中的链接/接受的答案......你不应该能够调整浏览器的大小。但是,您可以在浏览器窗口中最大化(我如何阅读它)
2021-03-26 06:49:31
上次发生这种情况的网站使用这样的代码,我没有阻止它:dorward.me.uk/tmp/fullscreen.jpeg
2021-03-30 06:49:31

这是进入和退出全屏模式(又名取消、退出、退出)的完整解决方案

        function cancelFullScreen() {
            var el = document;
            var requestMethod = el.cancelFullScreen||el.webkitCancelFullScreen||el.mozCancelFullScreen||el.exitFullscreen||el.webkitExitFullscreen;
            if (requestMethod) { // cancel full screen.
                requestMethod.call(el);
            } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
                var wscript = new ActiveXObject("WScript.Shell");
                if (wscript !== null) {
                    wscript.SendKeys("{F11}");
                }
            }
        }

        function requestFullScreen(el) {
            // Supports most browsers and their versions.
            var requestMethod = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullscreen;

            if (requestMethod) { // Native full screen.
                requestMethod.call(el);
            } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
                var wscript = new ActiveXObject("WScript.Shell");
                if (wscript !== null) {
                    wscript.SendKeys("{F11}");
                }
            }
            return false
        }

        function toggleFullScreen(el) {
            if (!el) {
                el = document.body; // Make the body go full screen.
            }
            var isInFullScreen = (document.fullScreenElement && document.fullScreenElement !== null) ||  (document.mozFullScreen || document.webkitIsFullScreen);

            if (isInFullScreen) {
                cancelFullScreen();
            } else {
                requestFullScreen(el);
            }
            return false;
        }
怎么样msIsFullScreen
2021-03-12 06:49:31
这个逻辑和操作的第一部分是多余的,应该删除 document.fullScreenElement && document.fullScreenElement !== null
2021-03-15 06:49:31
elemintoggleFull()document.bodyto更改document.documentElement为修复左右边距问题
2021-03-25 06:49:31
规格已更改。webkitCancelFullScreen现在是webkitExitFullscreengeneratecontent.org/post/70347573294/...
2021-03-30 06:49:31

您可以使用全屏 API 您可以在此处查看示例

全屏 API 为使用用户的整个屏幕呈现 Web 内容提供了一种简单的方法。本文提供有关使用此 API 的信息。