Javascript를 사용하여 창을 전체 화면으로 만드는 방법 (화면 전체에 스트레치)


253

IE, Firefox 및 Opera에서 작동하는 방식으로 방문자의 브라우저를 JavaScript를 사용하여 전체 화면으로 전환하려면 어떻게해야합니까?


29
대중을위한 것이 아니라 내부 적용. im 하나를 남용하지 않습니다
user63898

2
실용적으로 사용자에게 물을 수 있습니다.sprintf('Dear user, the best experience with this site is in fullscreen mode. To view this site full screen, press %s.', _get_browsers_full_Screen_key())
Boldewyn

6
YouTube 전체 화면이 어떻게 작동하는지 궁금합니다. 누구나 답을 알고 있습니까?
Kasturi

6
이것은 브라우저가 아닌 플래시 플레이어에 의해 수행됩니다.
user63898

5
최신 기술 개요를 보려면 여기를보십시오 : hacks.mozilla.org/2012/01/…
loomi

답변:


54

JavaScript로 전체 화면에 접근 할 수있는만큼 가깝습니다.

<script type="text/javascript">
    window.onload = maxWindow;

    function maxWindow() {
        window.moveTo(0, 0);

        if (document.all) {
            top.window.resizeTo(screen.availWidth, screen.availHeight);
        }

        else if (document.layers || document.getElementById) {
            if (top.window.outerHeight < screen.availHeight || top.window.outerWidth < screen.availWidth) {
                top.window.outerHeight = screen.availHeight;
                top.window.outerWidth = screen.availWidth;
            }
        }
    }
</script> 

링크 haim evgi가 게시 한 링크에서 링크 / 허용 된 답변을보십시오. 브라우저 크기를 조정할 수 없습니다. 그러나 브라우저 창 내에서 최대화 할 수 있습니다 (읽는 방법)
lexu

4
옵션의 자바 스크립트 권한 설정에 따라 다릅니다. 창 기능에 대해 js 제어를 토글 할 수 있습니다.
garrow

3
이것은 사이트에서 이와 같은 코드를 사용했을 때 마지막으로 발생 했으며
Quentin

2
웹킷 전체 화면 API를 살펴보십시오. bleeding-edge-tlv.appspot.com/#28(From # gdd2011)
Christian Kuetbach

17
이것은 오래되었습니다. 솔루션을 찾으십시오!
Keavon

281

Chrome 15, Firefox 10, Safari 5.1, IE 10과 같은 최신 브라우저에서는 가능합니다. 브라우저 설정에 따라 ActiveX를 통한 구형 IE의 경우에도 가능합니다.

방법은 다음과 같습니다.

function requestFullScreen(element) {
    // Supports most browsers and their versions.
    var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen;

    if (requestMethod) { // Native full screen.
        requestMethod.call(element);
    } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
        var wscript = new ActiveXObject("WScript.Shell");
        if (wscript !== null) {
            wscript.SendKeys("{F11}");
        }
    }
}

var elem = document.body; // Make the body go full screen.
requestFullScreen(elem);

사용자는 분명히 전체 화면 요청을 먼저 수락해야하며 페이지로드시이를 자동으로 트리거 할 수 없으며 사용자 (예 : 버튼)에 의해 트리거되어야합니다.

더 읽기 : https://developer.mozilla.org/en/DOM/Using_full-screen_mode


3
현재 Chrome 15, Firefox 10 및 Safari 5.1에서 사용할 수 있습니다. 현재 플레이 상태에 대한 자세한 내용 은이 hacks.mozilla.org 블로그 게시물 을 참조하십시오.
Simon Lieschke 2013

10
환상적이며 전체 화면을 종료하는 방법은 무엇입니까?
Christopher Chase

2
몇 가지. IE에서 이것은 분명히 요소와 전체 화면을 무시합니다. 전체 화면을보고 싶다면 모든 것이 전달되어야 document.documentElement올바른 루트 요소 ( 'html'또는 'body')를 얻을 수 있습니다. 사용 cancelFullscreen()하여 닫을 수 있습니다 (또는 IE의 경우 'F11'을 다시 보내십시오).
Matthew Wilcoxson

6
사용자에 의해서만 트리거 될 수 있습니다 (예 : 전체 화면 버튼을 통해). 로드시 자동 전체 화면을 사용할 수 없습니다.
A. KR


66

이 코드에는 Internet Explorer 9 및 이전 버전과 최신 버전의 Chrome에서 전체 화면을 사용하도록 설정하는 방법도 포함되어 있습니다. 허용 된 답변은 다른 브라우저에도 사용될 수 있습니다.

var el = document.documentElement
    , rfs = // for newer Webkit and Firefox
           el.requestFullscreen
        || el.webkitRequestFullScreen
        || el.mozRequestFullScreen
        || el.msRequestFullscreen
;
if(typeof rfs!="undefined" && rfs){
  rfs.call(el);
} else if(typeof window.ActiveXObject!="undefined"){
  // for Internet Explorer
  var wscript = new ActiveXObject("WScript.Shell");
  if (wscript!=null) {
     wscript.SendKeys("{F11}");
  }
}

출처 :


Chrome 18에서 테스트 된 IE 8 이상, FF10 이상 (FF 9에서 시도했지만 작동하지 않음)에서 작동
Treby

@Peter O. "이벤트 핸들러에 배치해야합니다", 온로드를 트리거하는 방법은 무엇입니까?
Francis P

@FrancisP : 아니오; "load"또는 "DOMContentLoaded"는 Fullscreen API에 적용 가능한 UIEvent 또는 MouseEvent가 아닙니다.
Peter O.

2
"(그러나 requestFullScreen은"중에 만 작동합니다 ""[클릭 및 키 다운 등과 같은 대부분의 UIEvent 및 MouseEvents 동안에 만 작동합니다 "", "따라서 악의적으로 사용할 수 없음")에

예 , 나 documentElement보다 낫습니다 body.
Matt

24

전체 화면 모드로 들어가거나 나가는 완벽한 솔루션입니다 (일명 취소, 종료, 이스케이프).

        function cancelFullScreen(el) {
            var requestMethod = el.cancelFullScreen||el.webkitCancelFullScreen||el.mozCancelFullScreen||el.exitFullscreen;
            if (requestMethod) { // cancel full screen.
                requestMethod.call(el);
            } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
                var wscript = new ActiveXObject("WScript.Shell");
                if (wscript !== null) {
                    wscript.SendKeys("{F11}");
                }
            }
        }

        function requestFullScreen(el) {
            // Supports most browsers and their versions.
            var requestMethod = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullscreen;

            if (requestMethod) { // Native full screen.
                requestMethod.call(el);
            } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
                var wscript = new ActiveXObject("WScript.Shell");
                if (wscript !== null) {
                    wscript.SendKeys("{F11}");
                }
            }
            return false
        }

        function toggleFull() {
            var elem = document.body; // Make the body go full screen.
            var isInFullScreen = (document.fullScreenElement && document.fullScreenElement !== null) ||  (document.mozFullScreen || document.webkitIsFullScreen);

            if (isInFullScreen) {
                cancelFullScreen(document);
            } else {
                requestFullScreen(elem);
            }
            return false;
        }

1
무엇에 대해 msIsFullScreen?
kangax

1
사양이 변경되었습니다. webkitCancelFullScreen지금 webkitExitFullscreen입니다. generatedcontent.org/post/70347573294/…
Doug S

이 논리 및 작업의 첫 부분은 중복되므로 제거해야합니다.document.fullScreenElement && document.fullScreenElement !== null
고려 사항

변경 elemtoggleFull()에서 document.bodydocument.documentElement수정을 왼쪽과 오른쪽 여백 문제
Firnas


8

새로운 html5 기술 – 전체 화면 API를 사용하면 웹 페이지 콘텐츠를 전체 화면 모드로 쉽게 표시 할 수 있습니다. 전체 화면 모드에 대한 자세한 정보를 제공하려고합니다. 이 기술을 사용하여 얻을 수있는 모든 장점, 즉 전체 화면 사진 앨범, 비디오 및 게임에 대해 상상해보십시오.

그러나이 새로운 기술을 설명하기 전에이 기술은 실험적이며 모든 주요 브라우저에서 지원됩니다 .

전체 자습서는 여기에서 찾을 수 있습니다 : http://www.css-jquery-design.com/2013/11/javascript-jquery-fullscreen-browser-window-html5-technology/

여기 데모가 있습니다 : http://demo.web3designs.com/javascript-jquery-fullscreen-browser-window-html5-technology.htm


1
@Ian IE Edge에서 작동합니다. 이전 버전의 IE는이를 지원하지 않습니다.
Dhiraj

8

나는 이것을 사용했다 ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>
    <script language="JavaScript">
        function fullScreen(theURL) {
            window.open(theURL, '', 'fullscreen=yes, scrollbars=auto');
        }
        // End -->
    </script>
</head>

<body>
    <h1 style="text-align: center;">
        Open In Full Screen
    </h1>
    <div style="text-align: center;"><br>
        <a href="javascript:void(0);" onclick="fullScreen('http://google.com');">
            Open Full Screen Window
        </a>
    </div>
</body>

</html>

window.open (theURL, '', 'fullscreen = yes', 'scrollbars = auto'); 이 줄에는 파 렌스 문제가있다
Kevin Bowersox

그래도 부모님의 것입니다. 창이 이미 열려 있으면 도움이되지 않습니다.
Christian

7

간단한 예 : http://www.longtailvideo.com/blog/26517/using-the-browsers-new-html5-fullscreen-capabilities/

<script type="text/javascript">
  function goFullscreen(id) {
    // Get the element that we want to take into fullscreen mode
    var element = document.getElementById(id);

    // These function will not exist in the browsers that don't support fullscreen mode yet, 
    // so we'll have to check to see if they're available before calling them.

    if (element.mozRequestFullScreen) {
      // This is how to go into fullscren mode in Firefox
      // Note the "moz" prefix, which is short for Mozilla.
      element.mozRequestFullScreen();
    } else if (element.webkitRequestFullScreen) {
      // This is how to go into fullscreen mode in Chrome and Safari
      // Both of those browsers are based on the Webkit project, hence the same prefix.
      element.webkitRequestFullScreen();
   }
   // Hooray, now we're in fullscreen mode!
  }
</script>

<img class="video_player" src="image.jpg" id="player"></img>
<button onclick="goFullscreen('player'); return false">Click Me To Go Fullscreen! (For real)</button>

6

함수 만들기

function toggleFullScreen() {

            if ((document.fullScreenElement && document.fullScreenElement !== null) ||
                    (!document.mozFullScreen && !document.webkitIsFullScreen)) {
             $scope.topMenuData.showSmall = true;
                if (document.documentElement.requestFullScreen) {
                    document.documentElement.requestFullScreen();
                } else if (document.documentElement.mozRequestFullScreen) {
                    document.documentElement.mozRequestFullScreen();
                } else if (document.documentElement.webkitRequestFullScreen) {
                    document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
                }
            } else {

                  $scope.topMenuData.showSmall = false;
                if (document.cancelFullScreen) {
                    document.cancelFullScreen();
                } else if (document.mozCancelFullScreen) {
                    document.mozCancelFullScreen();
                } else if (document.webkitCancelFullScreen) {
                    document.webkitCancelFullScreen();
                }
            }
        }

HTML Put Code에서

<ul class="unstyled-list fg-white">

            <li class="place-right" data-ng-if="!topMenuData.showSmall" data-ng-click="toggleFullScreen()">Full Screen</li>
            <li class="place-right" data-ng-if="topMenuData.showSmall" data-ng-click="toggleFullScreen()">Back</li>
        </ul>

if 문이 IE 11의 전체 화면 모드에서이를 감지하지 못하는 것 같습니다 (닫지 마십시오).
Ian

3

이제 전체 화면 API가 더 광범위하고 성숙해 보이므로 Screenfull.js를 사용해보십시오 . 어제 처음으로 사용했으며 오늘날 우리 앱은 거의 모든 브라우저에서 전체 화면으로 제공됩니다!

:fullscreenCSS 의 의사 클래스 와 연결하십시오 . 자세한 내용은 https://www.sitepoint.com/use-html5-full-screen-api/ 를 참조 하십시오 .


놀라운 작은 스크립트. 내 웹 사이트 www.StarCommanderOnline.com에서 사용하십시오. 고마워!
Andy

3

운 좋게도 웹 사용자를 의심하지 않으면 자바 스크립트만으로는 수행 할 수 없습니다. 브라우저 별 플러그인이없는 경우 브라우저 별 플러그인을 작성한 다음 사람들이 다운로드하도록 유도해야합니다. 가장 가까운 도구 또는 탐색 막대가없는 최대화 된 창이지만 사용자는 여전히 URL을 볼 수 있습니다.

window.open('http://www.web-page.com', 'title' , 'type=fullWindow, fullscreen, scrollbars=yes');">

이것은 사용자로부터 많은 브라우저 기능을 제거하기 때문에 일반적으로 나쁜 습관으로 간주됩니다.


3

screenfull.js를 사용해보십시오 . Opera 브라우저에서도 작동하는 멋진 크로스 브라우저 솔루션입니다.

페이지 또는 요소를 전체 화면으로 가져올 수있는 JavaScript 전체 화면 API의 브라우저 간 사용을위한 간단한 래퍼입니다. 브라우저 구현의 차이를 완화시켜주지 않아도됩니다.

데모 .


2

이것은 지원할 수 있습니다

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="PRODUCTION_Default5" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
        <script type="text/javascript">
            function max()
            {
               window.open("", "_self", "fullscreen=yes, scrollbars=auto"); 
            }
        </script>
    </head>
    <body onload="max()">
        <form id="form1" runat="server">
        <div>
        This is Test Page
        </div>
        </form>
    </body>
    </html>

2

할 수 있겠 니:

<script type="text/javascript">
    function go_full_screen(){
      var elem = document.documentElement;
      if (elem.requestFullscreen) {
        elem.requestFullscreen();
      } else if (elem.msRequestFullscreen) {
        elem.msRequestFullscreen();
      } else if (elem.mozRequestFullScreen) {
        elem.mozRequestFullScreen();
      } else if (elem.webkitRequestFullscreen) {
        elem.webkitRequestFullscreen();
      }
    }
</script>

<a href="#" onClick="go_full_screen();">Full Screen / Compress Screen</a>


Ubuntu의 Chrome 76에서 나에게 실패한 것 같습니다.
Jonathan

1

이 스크립트를 사용해보십시오

<script language="JavaScript">
function fullScreen(theURL) {
window.open(theURL, '', 'fullscreen=yes, scrollbars=auto' );
}
</script>

스크립트에서 호출하려면이 코드를 사용하십시오.

window.fullScreen('fullscreen.jsp');

또는 하이퍼 링크로 이것을 사용하십시오

<a href="javascript:void(0);" onclick="fullScreen('fullscreen.jsp');"> 
Open in Full Screen Window</a>

1

Firefox 10에서는 다음 자바 스크립트를 사용하여 현재 페이지를 전체 화면 (창 크롬이없는 실제 전체 화면)으로 만들 수 있습니다.

window.fullScreen = true;

1
"supposed to"라는 용어는 소프트웨어에서 너무 과부하입니다. 일부 브라우저에서는 읽기 전용입니다. Firefox 10에서 설정할 수 있습니다.
Leopd

1

이것은 창을 전체 화면으로 보여줍니다.

참고 : 이것이 작동하려면 http://code.jquery.com/jquery-2.1.1.min.js의 Query가 필요합니다 .

또는 이와 같은 자바 스크립트 링크를 만드십시오.

<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>

   <div id="demo-element">
        <span>Full Screen Mode Disabled</span>
        <button id="go-button">Enable Full Screen</button>
    </div>
    <script>
    function GoInFullscreen(element) {
        if(element.requestFullscreen)
            element.requestFullscreen();
        else if(element.mozRequestFullScreen)
            element.mozRequestFullScreen();
        else if(element.webkitRequestFullscreen)
            element.webkitRequestFullscreen();
        else if(element.msRequestFullscreen)
            element.msRequestFullscreen();
    }

    function GoOutFullscreen() {
        if(document.exitFullscreen)
            document.exitFullscreen();
        else if(document.mozCancelFullScreen)
            document.mozCancelFullScreen();
        else if(document.webkitExitFullscreen)
            document.webkitExitFullscreen();
        else if(document.msExitFullscreen)
            document.msExitFullscreen();
    }

    function IsFullScreenCurrently() {
        var full_screen_element = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || null;

        if(full_screen_element === null)
            return false;
        else
            return true;
    }

    $("#go-button").on('click', function() {
        if(IsFullScreenCurrently())
            GoOutFullscreen();
        else
            GoInFullscreen($("#demo-element").get(0));
    });

    $(document).on('fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange', function() {
        if(IsFullScreenCurrently()) {
            $("#demo-element span").text('Full Screen Mode Enabled');
            $("#go-button").text('Disable Full Screen');
        }
        else {
            $("#demo-element span").text('Full Screen Mode Disabled');
            $("#go-button").text('Enable Full Screen');
        }
    });</script>

0

"키오스크"상황에있는 경우 전체 화면으로 이동하는 Q & D 방법은 F11이 시작된 후 브라우저 창에 F11을 공급하는 것입니다. 이것은 시작이 아니며 사용자가 상단에서 터치 스크린을 찌를 수 있고 반 전체 화면을 볼 수는 있지만 F11을 먹이는 것은 핀치하거나 프로젝트를 시작하기 위해 할 수 있습니다.


0

여기 제에 대한 완전한 솔루션 Full ScreenExit Full Screen양 (타워의 답변의 도움에 많은 감사 위의) :

$(document).ready(function(){
$.is_fs = false;
$.requestFullScreen = function(calr)
{
    var element = document.body;

    // Supports most browsers and their versions.
    var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen;

    if (requestMethod) { // Native full screen.
        requestMethod.call(element);
    } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
        var wscript = new ActiveXObject("WScript.Shell");
        if (wscript !== null) {
            wscript.SendKeys("{F11}");
        }
    }

    $.is_fs = true;    
    $(calr).val('Exit Full Screen');
}

$.cancel_fs = function(calr)
{
    var element = document; //and NOT document.body!!
    var requestMethod = element.exitFullScreen || element.mozCancelFullScreen || element.webkitExitFullScreen || element.mozExitFullScreen || element.msExitFullScreen || element.webkitCancelFullScreen;

    if (requestMethod) { // Native full screen.
    requestMethod.call(element);
    } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
        var wscript = new ActiveXObject("WScript.Shell");
        if (wscript !== null) {
            wscript.SendKeys("{F11}");
        }
    }    

    $(calr).val('Full Screen');    
    $.is_fs = false;
}

$.toggleFS = function(calr)
{    
    $.is_fs == true? $.cancel_fs(calr):$.requestFullScreen(calr);
}

});

// 전화 :

<input type="button" value="Full Screen" onclick="$.toggleFS(this);" />
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.