HTML5全屏网站在内部链接上退出全屏模式

HTML5全屏网站在内部链接上退出全屏模式,html,Html,我正在建立一个网站使用HTML5,并希望有一个全屏选项。我使用下面的代码让它工作,但是当你点击一个内部链接时,它会退出全屏模式。这是相当不可取的。我已经搜索了很多次,没有看到这个问题的任何答案,只有与iOS的webapps相关的问题,而这不是。演示站点位于: 我还注意到,当在Firefox中全屏显示时,屏幕底部会出现一条黑色的条纹,这在Chrome或Safari中是不会发生的 在导航到其他内部页面时,如何使网站保持全屏模式?(还有,Firefox中的黑条有什么办法吗?) 以下是全屏代码: (fu

我正在建立一个网站使用HTML5,并希望有一个全屏选项。我使用下面的代码让它工作,但是当你点击一个内部链接时,它会退出全屏模式。这是相当不可取的。我已经搜索了很多次,没有看到这个问题的任何答案,只有与iOS的webapps相关的问题,而这不是。演示站点位于:

我还注意到,当在Firefox中全屏显示时,屏幕底部会出现一条黑色的条纹,这在Chrome或Safari中是不会发生的

在导航到其他内部页面时,如何使网站保持全屏模式?(还有,Firefox中的黑条有什么办法吗?)

以下是全屏代码:

(function () {
var viewFullScreen = document.getElementById("view-fullscreen");
if (viewFullScreen) {
    viewFullScreen.addEventListener("click", function () {
        var docElm = document.documentElement;
        if (docElm.requestFullscreen) {
            docElm.requestFullscreen();
        }
        else if (docElm.mozRequestFullScreen) {
            docElm.mozRequestFullScreen();
        }
        else if (docElm.webkitRequestFullScreen) {
            docElm.webkitRequestFullScreen();
        }
    }, false);
}

var cancelFullScreen = document.getElementById("cancel-fullscreen");
if (cancelFullScreen) {
    cancelFullScreen.addEventListener("click", function () {
        if (document.exitFullscreen) {
            document.exitFullscreen();
        }
        else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        }
        else if (document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        }
    }, false);
}


var fullscreenState = document.getElementById("fullscreen-state");
if (fullscreenState) {
    document.addEventListener("fullscreenchange", function () {
        fullscreenState.innerHTML = (document.fullscreen)? "" : "not ";
    }, false);

    document.addEventListener("mozfullscreenchange", function () {
        fullscreenState.innerHTML = (document.mozFullScreen)? "" : "not ";
    }, false);

    document.addEventListener("webkitfullscreenchange", function () {
        fullscreenState.innerHTML = (document.webkitIsFullScreen)? "" : "not ";
    }, false);
}

var marioVideo = document.getElementById("mario-video")
    videoFullscreen = document.getElementById("video-fullscreen");

if (marioVideo && videoFullscreen) {
    videoFullscreen.addEventListener("click", function (evt) {
        if (marioVideo.requestFullscreen) {
            marioVideo.requestFullscreen();
        }
        else if (marioVideo.mozRequestFullScreen) {
            marioVideo.mozRequestFullScreen();
        }
        else if (marioVideo.webkitRequestFullScreen) {
            marioVideo.webkitRequestFullScreen();
            /*
                *Kept here for reference: keyboard support in full screen
                * marioVideo.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
            */
        }
    }, false);
}

})()

使用iframe。外部页面只包含切换全屏按钮和一个大iframe,它填充了屏幕的其余部分,并包含您的真实内容。您的布局在切换按钮的左侧已经有一个空白,因此您甚至不必更改布局

iframe内的导航,甚至到其他域,都不会在外部框架上打破全屏模式


您需要仔细调整iframe的大小,以便在外部框架上没有滚动条。

使用iframe。外部页面只包含切换全屏按钮和一个大iframe,它填充了屏幕的其余部分,并包含您的真实内容。您的布局在切换按钮的左侧已经有一个空白,因此您甚至不必更改布局

iframe内的导航,甚至到其他域,都不会在外部框架上打破全屏模式


您需要仔细调整iframe的大小,以便在外部框架上没有滚动条。

我可以问一下,您的用户强制浏览器进入全屏模式有什么好处吗?除非有特定的需求,否则这违反了一些基本的可用性原则。(所以你可能只是为了减少用户的体验而跳转。)用户不是被迫使用全屏模式,它只是一个选项——要进入全屏,你必须点击一个写着“全屏”的链接。我个人从不使用全屏,也不喜欢它的想法,但是我的客户似乎认为它很棒,并且对上述问题不满意。如果由我决定的话,我会把它完全扔掉……是的,这很难。教育客户可能是这项工作中最难的部分。按小时收费!请问您的用户从强制浏览器进入全屏模式中得到了什么好处?除非有特定的需求,否则这违反了一些基本的可用性原则。(所以你可能只是为了减少用户的体验而跳转。)用户不是被迫使用全屏模式,它只是一个选项——要进入全屏,你必须点击一个写着“全屏”的链接。我个人从不使用全屏,也不喜欢它的想法,但是我的客户似乎认为它很棒,并且对上述问题不满意。如果由我决定的话,我会把它完全扔掉……是的,这很难。教育客户可能是这项工作中最难的部分。按小时收费!谢谢,但出于各种原因,我不想使用iframe。我想我会说服客户放弃全屏选项。谢谢,但出于各种原因,我不想使用iframe。我想我会说服客户放弃全屏选项。