【问题标题】:Full screen in html page on Mac OS X [duplicate]Mac OS X上的html页面全屏[重复]
【发布时间】:2014-06-17 23:29:39
【问题描述】:

我正在努力实现这个网站的这个功能:

http://flatfull.com/themes/note/index.html

如果你点击左上角的笔记本标志,你可以看到在 Mac OS X 上的 Safari 上(我只测试过)自动全屏显示页面,我如何实现这个功能?

【问题讨论】:

    标签: html css macos


    【解决方案1】:

    这将帮助您(将其命名为 fs.js)和:

    /*global Element */
    (function( window, document ) {
        'use strict';
    
        var keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element, // IE6 throws without typeof check
    
            fn = (function() {
                var fnMap = [
                    [
                        'requestFullscreen',
                        'exitFullscreen',
                        'fullscreenchange',
                        'fullscreen',
                        'fullscreenElement',
                        'fullscreenerror'
                    ],
                    [
                        'webkitRequestFullScreen',
                        'webkitCancelFullScreen',
                        'webkitfullscreenchange',
                        'webkitIsFullScreen',
                        'webkitCurrentFullScreenElement',
                        'webkitfullscreenerror'
    
                    ],
                    [
                        'mozRequestFullScreen',
                        'mozCancelFullScreen',
                        'mozfullscreenchange',
                        'mozFullScreen',
                        'mozFullScreenElement',
                        'mozfullscreenerror'
                    ]
                ],
                i = 0,
                l = fnMap.length,
                ret = {},
                val,
                valLength;
    
                for ( ; i < l; i++ ) {
                    val = fnMap[ i ];
                    if ( val && val[1] in document ) {
                        for ( i = 0, valLength = val.length; i < valLength; i++ ) {
                            ret[ fnMap[0][ i ] ] = val[ i ];
                        }
                        return ret;
                    }
                }
                return false;
            })(),
    
            screenfull = {
                isFullscreen: document[ fn.fullscreen ],
                element: document[ fn.fullscreenElement ],
    
                request: function( elem ) {
                    var request = fn.requestFullscreen;
    
                    elem = elem || document.documentElement;
    
                    // Work around Safari 5.1 bug: reports support for
                    // keyboard in fullscreen even though it doesn't.
                    // Browser sniffing, since the alternative with
                    // setTimeout is even worse
                    if ( /5\.1[\.\d]* Safari/.test( navigator.userAgent ) ) {
                        elem[ request ]();
                    } else {
                        elem[ request ]( keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT );
                    }
                },
    
                exit: function() {
                    document[ fn.exitFullscreen ]();
                },
    
                toggle: function( elem ) {
                    if ( this.isFullscreen ) {
                        this.exit();
                    } else {
                        this.request( elem );
                    }
                },
    
                onchange: function() {},
                onerror: function() {}
            };
    
        if ( !fn ) {
            window.screenfull = null;
            return;
        }
    
        document.addEventListener( fn.fullscreenchange, function( e ) {
            screenfull.isFullscreen = document[ fn.fullscreen ];
            screenfull.element = document[ fn.fullscreenElement ];
            screenfull.onchange.call( screenfull, e );
        });
    
        document.addEventListener( fn.fullscreenerror, function( e ) {
            screenfull.onerror.call( screenfull, e );
        });
    
        window.screenfull = screenfull;
    
    })( window, document );
    

    【讨论】:

    • 感谢您的回答,但我该如何使用呢?在我把它放在一个 js 文件中之后,我需要做什么才能将它与 html 中的 href 连接起来?
    • @Piero :你可以看一个例子on this site我让你浏览代码。如果您需要更多帮助,请告诉我。
    • 谢谢,我尝试使用它,但在 safari 上不起作用,在 Chrome 上有效,我在问题中提供的链接在 safari 和 chrome 上都有效...
    猜你喜欢
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2012-12-13
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多