javascript iframe 进入全屏模式

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18901847/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 13:37:44  来源:igfitidea点击:

Iframe enter fullscreen mode

javascriptjqueryhtmliframe

提问by Ramy Khalid

I need to make iframe enter fullscreen mode, i am using iframe to display pdf file by google docs viewer i need this iframe to enter fullscreen. I have found an code in the internet for displaying html video and iframe and there full screen but when i try to remove the video, the fullscreen never work In this code the iframe (fullscreen) not working

我需要让 iframe 进入全屏模式,我正在使用 iframe 通过 google docs 查看器显示 pdf 文件我需要这个 iframe 进入全屏。我在互联网上找到了一个代码,用于显示 html 视频和 iframe 并在那里全屏,但是当我尝试删除视频时,全屏从不工作在此代码中 iframe(全屏)不起作用

<!DOCTYPE HTML>

<link rel="stylesheet" type="text/css" href="_styles.css" media="screen">

<title>Fullscreen API | The CSS Ninja</title>

<div class="fl">
    <iframe src="http://thecssninja.com/talks/dnd_and_friends/" width="320" height="240" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe><br /> 
    <button id="fullscreeniframe" class="button">Fullscreen iframe</button>
</div>

<script>
    (function(window, document){
        var $ = function(selector,context){return(context||document).querySelector(selector)};

        var video  = $("video"),
            iframe = $("iframe"),
            domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');

        var fullscreen = function(elem) {
            var prefix;
            // Mozilla and webkit intialise fullscreen slightly differently
            for ( var i = -1, len = domPrefixes.length; ++i < len; ) {
              prefix = domPrefixes[i].toLowerCase();

              if ( elem[prefix + 'EnterFullScreen'] ) {
                // Webkit uses EnterFullScreen for video
                return prefix + 'EnterFullScreen';
                break;
              } else if( elem[prefix + 'RequestFullScreen'] ) {
                // Mozilla uses RequestFullScreen for all elements and webkit uses it for non video elements
                return prefix + 'RequestFullScreen';
                break;
              }
            }

            return false;
        };

        // Will return fullscreen method as a string if supported e.g. "mozRequestFullScreen" || false;
        var fullscreenvideo = fullscreen(document.createElement("video"));

        // Webkit uses "requestFullScreen" for non video elements
        var fullscreenother = fullscreen(document.createElement("iframe"));

        if(!fullscreen) {
            alert("Fullscreen won't work, please make sure you're using a browser that supports it and you have enabled the feature");
            return;
        }

        // Should add prefixed events for potential ms/o or unprefixed support too
        video.addEventListener("webkitfullscreenchange",function(){
            console.log(document.webkitIsFullScreen);
        }, false);
        video.addEventListener("mozfullscreenchange",function(){
            console.log(document.mozFullScreen);
        }, false);

        $("#fullscreenvid").addEventListener("click", function(){
            // The test returns a string so we can easily call it on a click event
            video[fullscreenvideo]();
        }, false);
        $("#fullscreeniframe").addEventListener("click", function(){
            // iframe fullscreen and non video elements in webkit use request over enter
            iframe[fullscreenother]();
        }, false);
    })(this, this.document);
</script>

http://www.thecssninja.com/demo/fullscreen/

http://www.thecssninja.com/demo/fullscreen/

采纳答案by A. Wolff

I've removed video references, try that:

我已经删除了视频参考,试试看:

(function(window, document){
        var $ = function(selector,context){return(context||document).querySelector(selector)};

        var iframe = $("iframe"),
            domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');

        var fullscreen = function(elem) {
            var prefix;
            // Mozilla and webkit intialise fullscreen slightly differently
            for ( var i = -1, len = domPrefixes.length; ++i < len; ) {
              prefix = domPrefixes[i].toLowerCase();

              if ( elem[prefix + 'EnterFullScreen'] ) {
                // Webkit uses EnterFullScreen for video
                return prefix + 'EnterFullScreen';
                break;
              } else if( elem[prefix + 'RequestFullScreen'] ) {
                // Mozilla uses RequestFullScreen for all elements and webkit uses it for non video elements
                return prefix + 'RequestFullScreen';
                break;
              }
            }

            return false;
        };              
        // Webkit uses "requestFullScreen" for non video elements
        var fullscreenother = fullscreen(document.createElement("iframe"));

        if(!fullscreen) {
            alert("Fullscreen won't work, please make sure you're using a browser that supports it and you have enabled the feature");
            return;
        }

        $("#fullscreeniframe").addEventListener("click", function(){
            // iframe fullscreen and non video elements in webkit use request over enter
            iframe[fullscreenother]();
        }, false);
    })(this, this.document);