javascript - 如何使用 confirm() 将整个网页更改为全屏?

标签 javascript html firefox greasemonkey confirm

我希望在确认框中单击“确定”时整个网页进入全屏模式,但这样只会出现错误 TypeError: docelem.requestFullscreen is not a function。我什么都试过了……

var conf = confirm("Fullscreen mode?");
var docelem = document.documentElement;
if (conf == true) {
    docelem.requestFullscreen();
}
else if (conf == true) {
    docelem.mozRequestFullScreen();
}
else if (conf == true) {
    docelem.webkitRequestFullScreen();
}
else if (conf == true) {
    docelem.msRequestFullscreen();
}

一些解决方案?还是不能使用 confirm()?因为使用按钮有效:

(function () {
    var fullscreenon = document.getElementById("fullscreenbutton");//button Id
    if (fullscreenon) {
        fullscreenon.addEventListener("click", function () {
            var docelem = document.documentElement;
            if (docelem.requestFullscreen) {
                docelem.requestFullscreen();
            }
            else if (docelem.msRequestFullscreen) {
                docelem.msRequestFullscreen();
            }
            else if (docelem.mozRequestFullScreen) {
                docelem.mozRequestFullScreen();
            }
            else if (docelem.webkitRequestFullScreen) {
                docelem.webkitRequestFullScreen();
            }
        }, false);
    }
})();

最佳答案

首先,您的两个样本的条件不同。正确的代码是:

var conf = confirm("Fullscreen mode?");
var docelem = document.documentElement;

if (conf == true) {
    if (docelem.requestFullscreen) {
        docelem.requestFullscreen();
    }
    else if (docelem.mozRequestFullScreen) {
        docelem.mozRequestFullScreen();
    }
    else if (docelem.webkitRequestFullscreen) {
        docelem.webkitRequestFullscreen();
    }
    else if (docelem.msRequestFullscreen) {
        docelem.msRequestFullscreen();
    }
}

其次,也是重要的一点,您无法在没有用户交互的情况下全屏显示您的页面。这是一个安全限制。如果您通过用户点击触发上面的代码,它将起作用。例如:

document.onclick = function (argument) {
    var conf = confirm("Fullscreen mode?");
    var docelem = document.documentElement;

    if (conf == true) {
        if (docelem.requestFullscreen) {
            docelem.requestFullscreen();
        }
        else if (docelem.mozRequestFullScreen) {
            docelem.mozRequestFullScreen();
        }
        else if (docelem.webkitRequestFullScreen) {
            docelem.webkitRequestFullScreen();
        }
        else if (docelem.msRequestFullscreen) {
            docelem.msRequestFullscreen();
        }
    }
}

如果您单击页面上的任意位置,将激活全屏模式。更多详情:https://stackoverflow.com/a/20533579/198062

关于javascript - 如何使用 confirm() 将整个网页更改为全屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25980431/

相关文章:

html - 制作一个头部,左右各有2个选择,中间有一个logo

javascript - 无法在 Firefox 上获取滚轮滚动增量

javascript - 当鼠标悬停在某个元素上时,我想显示一小段文本,例如 "Get Info"

javascript - 试图阻止 Javascript 在页面加载时运行

jquery - 在调整容器 DIV 大小期间隐藏 iframe 会加快响应速度吗?

css - 内容:url() 在 firefox 中不起作用,::之前/::未修复后

css - Firefox 需要 SVG <mask> 标记,但在 Chrome 中似乎会破坏 CSS 掩码

javascript - Protractor 脚本太快并且未处理覆盖上的元素

javascript - 我如何将按钮放在文本区域内并限制文本区域的大小?

javascript - 使用 Jquery.Load() 时 BODY 标签消失