Подтвердить что ты не робот

Проверка наличия браузера в полноэкранном режиме

Возможный дубликат:
Обнаружение, если браузер находится в полноэкранном режиме

Есть ли способ проверить, находится ли браузер в полноэкранном режиме (после нажатия пользователем f11)?

Что-то вроде:

if (window.fullscreen) {
  // it fullscreen!
}
else {
  // not fs!
}

Спасибо.

Ответ на Steerpike довольно хорош, но мой комментарий:

Большое спасибо, но этот ответ не достаточной для FF. В Chrome я могу установить небольшой допуск, но в FF urlbar и вкладки занимает некоторое время, чтобы исчезают, что означает после нажатия f11, обнаруженное окно .innerWidth еще слишком маленький.

4b9b3361

Ответ 1

В Firefox 3 работает window.fullScreen(https://developer.mozilla.org/en/DOM/window.fullScreen).

Итак, вы могли бы сделать что-то вроде этого:

if((window.fullScreen) ||
   (window.innerWidth == screen.width && window.innerHeight == screen.height)) {

} else {

}

Ответ 2

Это работает для всех новых браузеров:

if (!window.screenTop && !window.screenY) {
    alert('Browser is in fullscreen');
}

Ответ 3

if(window.innerWidth == screen.width && window.innerHeight == screen.height) {

} else {

}

(Предупреждение: хром браузера может ошибаться с сравнением высоты, но проверки ширины должны быть довольно точными)

Ответ 4

У меня появилось следующее решение:

function _fullscreenEnabled() {
    // FF provides nice flag, maybe others will add support for this later on?
    if(window['fullScreen'] !== undefined) {
      return window.fullScreen;
    }
    // 5px height margin, just in case (needed by e.g. IE)
    var heightMargin = 5;
    if($.browser.webkit && /Apple Computer/.test(navigator.vendor)) {
      // Safari in full screen mode shows the navigation bar, 
      // which is 40px  
      heightMargin = 42;
    }
    return screen.width == window.innerWidth &&
        Math.abs(screen.height - window.innerHeight) < heightMargin;
  }

Что работает в каждом обозревателе, о котором я забочусь (Chrome, FF, IE, Safari/Mac, Opera).

Обновление: он не работает в Opera/Mac, Opera на Mac, а в полноэкранном режиме скрывает только "общее" OSX-меню, поэтому высота отличается только несколькими пикселями, которые для меня слишком опасны.

Ответ 5

это работает в основных браузерах (например, ff, opera, chrome)

function isFullscreen(){

  if($.browser.opera){

    var fs=$('<div class="fullscreen"></div>');
    $('body').append(fs);

    var check=fs.css('display')=='block';
    fs.remove();

    return check;
  }

  var st=screen.top || screen.availTop || window.screenTop;

  if(st!=window.screenY){

    return false;
  }

  return window.fullScreen==true || screen.height-document.documentElement.clientHeight<=30;
}

css для оперы:

.fullscreen { display: none; }

@media all and (view-mode: fullscreen){

  .fullscreen { display: block; }
}

Ответ 6

Достаточно просто: найдите окно просмотра браузера с помощью $(window).width() и $(window).height(), и если они соответствуют набору определенных размеров видового экрана (600 x 480, 1280 x 800 и т.д.), вы можете знать, что это скорее всего, в полноэкранном режиме. Также вы можете установить обработчики событий, например, как клавиши fll и другие возможные ярлыки, чтобы определить полноэкранный режим браузера.