html5 窗口全屏

这里先说明一下, 由于浏览器安全的考虑, 通过JS 打开窗口,窗口最大化或全屏 等操作是不被允许的,只有用户自己点击或输入才会允许触发这些操作。其实也不难理解为什么这样, 你想想自己以前上一些网站,里面给你弹出很多广告窗口,你希望这样吗?

 

使用场景, 某业务部门的人员,会在固定的一台电脑上做事情, 这些事情在一个页面上进行,他们不会再切换其他页面了。就像ATM 或者其他终端机一样, 打开一个浏览器, 然后把这个浏览器全屏显示。

设计的初衷是用户点击业务链接, 进入一个空白页面, 该空白页面打开一个新窗口并且把这个新窗口全屏,全程JS 控制。

理想很丰满,现实很骨感。

改良的设计,用户点击业务链接,

           1. 进入一个空白页面,尝试自动打开一个新窗口,并且提供一个打开新窗口的按钮给人员手动操作, 该新窗口的高度和宽度设置为接近全屏。

            2. 新窗口, 尝试自动全屏, 并且设置两个按钮, 一个全屏按钮,一个退出全屏的按钮, 提醒用户可以按F11,进入全屏或退出全屏。

         思路就是能自动就自动,不能自动也要给用户一个手动操作的地方。

  • 可能有人会说了, 把浏览器的安全设置调低不就行了!你自己电脑可以随便设置,生产用的电脑,安全性把控很严。
  • 可能有人会说按F11不是很简单吗?生产的人员流动大,人员水平参差不齐,你要把所有人当作小白来对待。

空白页面的js 代码

        function openWin() {
            win = window.open("链接" + '?timestamp' + new Date().getTime(), "newmaxwin",
                'width=' + (window.screen.availWidth + 8) + ',height=' + (window.screen.availHeight + 8) + ',top=0,left=0,resizable=0,status=0,menubar=0,location=0,scrollbars=yes');

            if (win && win.open && !win.closed) {
                win.toFullscreen();
                win.focus();
            };
        }

        openWin();

全屏页面(新窗口)的js 代码

function toFullscreen() {
            if (isFullScreen()) {
                return;
            }
            var docElement = document.documentElement;
            
            if (docElement.requestFullscreen) {//w3c, 原生html5的
                docElement.requestFullscreen();
            } else if (docElement.webkitRequestFullScreen) {   //chrome72+
                docElement.webkitRequestFullScreen();
            } else if (docElement.msRequestFullscreen) {     //ie11+
                docElement.msRequestFullscreen();
            } else if (docElement.mozRequestFullScreen) {    //firefox64+
                docElement.mozRequestFullScreen();
            } else {
                alert('浏览器不支持自动全屏操作,请升级IE11+,chrome72版本或FireFox64,' +
                    ' IE ,chrome 和FireFox 请按F11 进行手动全屏, ' +
                    ' 再次按F11 或ESC 退出全屏。');
                return;
            }
        }
        //判断是否全屏
        function isFullScreen() {
            return !!(
                document.fullscreen ||
                document.webkitIsFullScreen ||
                document.webkitFullScreen ||
                document.msFullScreen ||
                document.mozFullScreen
            );
        }
        //离开全屏
        function exitFullscreen() {
            if (!isFullScreen()) return;
            var docElement = document.documentElement;
            if (docElement.exitFullScreen) {
                docElement.exitFullScreen();
            } else if (document.mozCancelFullScreen) {
                docElement.mozCancelFullScreen();
            } else if (document.webkitExitFullscreen) {
                docElement.webkitExitFullscreen();
            } else if (document.msExitFullscreen) {
                docElement.msExitFullscreen();
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值