как управлять полноэкранным iframe с помощью кнопки

#javascript #jquery #html #dom

#javascript #jquery #HTML #dom

Вопрос:

У меня есть iframe:

 ....
     <div style="height:500px;width:500px;background:black" class="embed-responsive">
        <iframe src="widget.html" width="100%" height="100%" class="embed-responsive-item" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder="0"></iframe>
        </div>
....
  

В widget.html У меня есть кнопка для открытия и закрытия полноэкранного режима.

 function closeFullScreen () {

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

function openFullScreen ()  {
      var iframe = parent.document.getElementsByTagName("iframe")[0];

        if (iframe.requestFullscreen) { /* Firefox */
                iframe.requestFullscreen();
            } else if (iframe.webkitRequestFullscreen) { /* Chrome, Safari amp; Opera */
                iframe.webkitRequestFullscreen();
            } else if (iframe.mozRequestFullScreen) { /* Firefox */
                iframe.mozRequestFullScreen();
            } else if (iframe.msRequestFullscreen) { /* IE/Edge */
                iframe.msRequestFullscreen();
            }
}
  

Я могу открыть полноэкранный режим, но не закрывать его?

Кто-нибудь может мне помочь?

Комментарии:

1. Невозможно увидеть без того, где вы выполняете closeFullScreen — например, в unbeforeunload или что-то в этом роде

2. Я вызываю функцию из содержимого iframe…

3. Я решил с помощью query-fullscreen-plugin: github.com/kayahr/jquery-fullscreen-plugin/blob/master/demo /…

Ответ №1:

из MDN :

Свойство fullscreenEnabled, доступное только для чтения, в интерфейсе документа указывает, доступен ли полноэкранный режим.

источник: MDN

По сути, это означает, что выполняемый вами вызов с document.fullscreenEnabled на самом деле не проверяет, есть ли активный iFrame, у которого открыт весь экран. Скорее, он спрашивает «Доступен ли в документе полноэкранный режим?».