首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML 5全屏站点在内部链接上退出全屏模式

问HTML 5全屏站点在内部链接上退出全屏模式
EN

Stack Overflow用户
提问于 2012-10-11 21:44:41
回答 1查看 912关注 0票数 2

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

我还注意到,当火狐全屏时,屏幕底部会出现一条黑带,这在Chrome或Safari中是不会发生的。

如何在导航到其他内部页面时保持网站的全屏模式?(另外,对Firefox中的黑条可以做些什么吗?)

下面是全屏代码:

代码语言:javascript
复制
(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);
}

})();

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-13 13:39:04

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

在iframe中导航,即使是到其他域名,也不会破坏外部框架的全屏模式。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12841018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档