Pencereyi Javascript ile tam ekran yapmak (tüm ekranda uzanan)


253

IE, Firefox ve Opera ile çalışacak şekilde bir ziyaretçinin tarayıcısını JavaScript kullanarak tam ekrana nasıl getirebilirim?


29
iç uygulaması, halk için değil. im herhangi birini kötüye gidecek değil
user63898

2
Sen, pragmatic olarak, kullanıcıya sorabilirsiniz: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 tam ekranının nasıl çalıştığını merak ediyorum. Cevabı bilen var mı?
Kasturi

6
Bu tarayıcı değil flash player tarafından yapılır
user63898

5
En son teknolojiye genel bakış için buraya bakın: hacks.mozilla.org/2012/01/…
loomi

Yanıtlar:


54

Bu, JavaScript'te tam ekrana ulaşabileceğiniz kadar yakındır:

<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 adlı bağlantıdaki bağlantıya / kabul edilen cevaba bakın ... tarayıcıyı yeniden boyutlandıramazsınız. Ancak tarayıcılar penceresinden ekranı kapatabilirsiniz (bunu nasıl okurum)
lexu

4
Seçenekler'deki javascript izin ayarlarınıza bağlıdır. Pencere özellikleri üzerinde js denetimini değiştirebilirsiniz.
00'da garrow

3
Bu, bir site böyle bir kod kullandığında son kez oldu ve bunu engellemedim: dorward.me.uk/tmp/fullscreen.jpeg
Quentin

2
Webkit tam ekran API'sına bir göz atın: bleeding-edge-tlv.appspot.com/#28 (# gdd2011'den)
Christian Kuetbach

17
BU ESKİ. ÇÖZÜM İÇİN AŞAĞIDA BAKIN!
Keavon

281

Chrome 15, Firefox 10, Safari 5.1, IE 10 gibi yeni tarayıcılarda bu mümkündür. Tarayıcı ayarlarına bağlı olarak eski IE'ler için ActiveX üzerinden de mümkündür.

Bunu nasıl yapacağınız aşağıda açıklanmıştır:

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);

Kullanıcının öncelikle tam ekran isteğini kabul etmesi gerekiyor ve bunu sayfa yüklerken otomatik olarak tetiklemek mümkün değil, bir kullanıcı tarafından tetiklenmesi gerekiyor (örn. Bir düğme)

Daha fazla bilgi için: https://developer.mozilla.org/en/DOM/Using_full-screen_mode


3
Şu anda Chrome 15, Firefox 10 ve Safari 5.1'de sunulmaktadır. Mevcut oyun durumu hakkında ayrıntılar için bu hacks.mozilla.org blog gönderisine bakın .
Simon Lieschke

10
Fantastik, tam ekran çıkmak için herhangi bir yolu var mı?
Christopher Chase

2
Bir kaç şey. IE'de bu açıkça öğeyi ve tam ekran her şeyi göz ardı edecektir. Tam ekran yapmak istiyorsanız document.documentElement, doğru kök öğeyi ('html' veya 'gövde') almanızı sağlayacak her şey geçer . Ve cancelFullscreen()kapatmak için kullanın (veya IE için tekrar 'F11' gönderin).
Matthew Wilcoxson

6
Yalnızca kullanıcı tarafından tetiklenebilir (örneğin bir tam ekran düğmesi ile). Yükleme sırasında otomatik tam ekran mümkün değildir.
A. KR

3
docs gibi IE için yazım hatası, msRequestFullScreen olmalıdır msdn.microsoft.com/en-us/library/ie/dn265028(v=vs.85).aspx
DanielB

66

Bu kod ayrıca, Internet Explorer 9 ve muhtemelen eski sürümler için tam ekranın yanı sıra Google Chrome'un son sürümlerinin nasıl etkinleştirileceğini de içerir. Kabul edilen cevap diğer tarayıcılar için de kullanılabilir.

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}");
  }
}

Kaynaklar:


Yukarıdaki IE 8, yukarıdaki FF10 üzerinde çalışır (FF 9'da denendi, işe yaramadı), Chrome 18
Treby

@Peter O. "bir olay gidericiye yerleştirilmelidir", herhangi bir şekilde yüklemeyi tetiklemek için?
Francis P

@FrancisP: Hayır; ne "load" ne de "DOMContentLoaded", Fullscreen API için geçerli bir UIEvent veya MouseEvent değildir.
Peter O.

2
"(Ancak, requestFullScreen" öğesinin yalnızca "" [m] ost UIEvents ve MouseEvents, tıklama ve tuş takımı vb.)

Evet benden documentElementdaha iyidir body.
Matt

24

Tam ekran moduna girip çıkmak için tam bir çözüm (iptal, çıkış, kaçış olarak da bilinir)

        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
Ne olmuş msIsFullScreen?
kanguru

1
Teknik özellik değişti. webkitCancelFullScreenşimdi webkitExitFullscreen. generacontent.org/post/70347573294/…
Doug S

bu mantık ve işlemin ilk kısmı gereksizdir ve kaldırılmalıdırdocument.fullScreenElement && document.fullScreenElement !== null
consideRatio

değiştirmek elemiçinde toggleFull()gelen document.bodyiçin document.documentElementdüzeltme için sol ve sağ kenar sorunu
Firnas

11

Sen kullanabilirsiniz Tam ekran API görebilirsiniz bir örnek burada

Tam ekran API, web içeriğinin kullanıcının tüm ekranı kullanılarak sunulması için kolay bir yol sağlar. Bu makalede, bu API'nın kullanımı hakkında bilgi verilmektedir.


8

Yeni html5 teknolojisi - tam ekran API, bize bir web sayfası içeriğini tam ekran modunda sunmanın kolay bir yolunu sunar. Size tam ekran modu hakkında ayrıntılı bilgi vermek üzereyiz. Tam ekran fotoğraf albümleri, videolar ve hatta oyunlar gibi bu teknolojiyi kullanarak elde edebileceğiniz tüm avantajları hayal etmeye çalışın.

Ancak bu yeni teknolojiyi açıklamadan önce, bu teknolojinin deneysel olduğunu ve tüm büyük Tarayıcılar tarafından desteklendiğini belirtmeliyim .

Eğiticinin tamamını burada bulabilirsiniz: http://www.css-jquery-design.com/2013/11/javascript-jquery-fullscreen-browser-window-html5-technology/

İşte Demo çalışıyor: http://demo.web3designs.com/javascript-jquery-fullscreen-browser-window-html5-technology.htm


1
@Ian IE kenarında çalışıyor. IE'nin eski sürümü bunu desteklemiyor.
Dhiraj

8

Bunu kullandım ...

<!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, '', 'tam ekran = evet', 'kaydırma çubukları = otomatik'); Bu hatta bir parens problemi var
Kevin Bowersox

Ama bu ebeveynlerden. Pencere zaten açıldığında yardımcı olmaz.
Hıristiyan

7

Basit bir örnek: http://www.longtailvideo.com/blog/26517/using-the-browsers-new-html5-fullscreen-capability/

<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

İşlev Oluştur

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 Kodu koymak gibi

<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>

İfade IE 11'de tam ekran modunda bunu algılamıyorsa (bu yüzden kapanmaz).
Ian

3

Artık tam ekran API'leri daha yaygın ve olgunlaşıyor gibi görünüyor, neden Screenfull.js'yi denemiyorsunuz ? Dün ilk kez kullandım ve bugün uygulamamız (neredeyse) tüm tarayıcılarda gerçekten tam ekran gidiyor!

:fullscreenCSS'deki sözde sınıfla eşleştirdiğinizden emin olun . Daha fazla bilgi için https://www.sitepoint.com/use-html5-full-screen-api/ adresine bakın .


İnanılmaz küçük senaryo. Şimdi www.StarCommanderOnline.com adresindeki web sitemde kullanma. Teşekkürler!
Andy

3

Neyse ki şüpheli web kullanıcıları için bu sadece javascript ile yapılamaz. Zaten mevcut değilse, tarayıcıya özgü eklentiler yazmanız ve ardından bir şekilde kullanıcıların bunları indirmesini sağlamanız gerekir. Alabileceğiniz en yakın araç veya gezinme çubuğu olmayan en üst düzeye çıkarılmış bir penceredir, ancak kullanıcılar yine de url'yi görebilir.

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

Kullanıcıdan çok sayıda tarayıcı işlevselliğini kaldırdığından, bu genellikle kötü uygulama olarak kabul edilir.


3

Screenfull.js dosyasını deneyin . Opera tarayıcısı için de çalışması gereken hoş bir çapraz tarayıcı çözümü.

Sayfayı veya herhangi bir öğeyi tam ekrana getirmenizi sağlayan JavaScript Tam Ekran API'sının tarayıcılar arası kullanımı için basit sarmalayıcı. Tarayıcı uygulama farklılıklarını yumuşatır, böylece yapmanız gerekmez.

Demo .


2

Bu destekleyebilir

<%@ 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

Deneyebilir misin:

<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'daki Chrome 76'da benim için başarısız görünüyor
Jonathan

1

Bu komut dosyasını deneyin

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

Komut dosyasından çağrı yapmak için bu kodu kullanın,

window.fullScreen('fullscreen.jsp');

veya köprü ile bunu kullanın

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

1

Firefox 10'da, bu javascript'i kullanarak mevcut sayfanın tam ekrana (pencere kromu olmadan gerçek tam ekran) geçmesini sağlayabilirsiniz:

window.fullScreen = true;

1
"Sözde" terimi yazılımda aşırı yüklüdür. Bazı tarayıcılarda salt okunurdur. Firefox 10 ayarlamanızı sağlar.
Leopd

1

Bu pencerenizi tam ekranda göstermek için çalışır

Not: Bunun çalışması için http://code.jquery.com/jquery-2.1.1.min.js adresinden Sorguya ihtiyacınız vardır.

Veya böyle bir javascript bağlantısı var olun.

<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

Bir "kiosk" durumundaysanız, tam ekrana geçmenin bir Soru-Cevap yolu, açıldıktan ve çalıştırıldıktan sonra tarayıcı penceresine bir F11 beslemektir. Bu iyi bir başlangıç ​​değil ve kullanıcı üstte bir dokunmatik ekranı düzeltebilir ve yarı tam ekran görünümü elde edebilir, ancak F11'i beslemek bir tutamla veya sadece bir projeye başlamak için yapabilir.


0

İşte Full Screenve Exit Full Screenher ikisi için tam çözümüm (yukarıdaki kulenin cevabından yardım için çok teşekkürler):

$(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);
}

});

// ARAMA:

<input type="button" value="Full Screen" onclick="$.toggleFS(this);" />
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.