Редактировать атрибуты iframe из виджета в Adobe Captivate

Я пишу виджет для Adobe Captivate, который должен работать в HTML5. Этот виджет содержит кнопку для переключения в полноэкранный режим. По сути, плагин выглядит так:

function toggleFullscreen(elem) {
  elem = elem || document.documentElement;
  if (!document.fullscreenElement && !document.mozFullScreenElement &&
    !document.webkitFullscreenElement && !document.msFullscreenElement) {
    if (elem.requestFullscreen) {
      elem.requestFullscreen();
    } else if (elem.msRequestFullscreen) {
      elem.msRequestFullscreen();
    } else if (elem.mozRequestFullScreen) {
      elem.mozRequestFullScreen();
    } else if (elem.webkitRequestFullscreen) {
      elem.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
    }
  } else {
    if (document.exitFullscreen) {
      document.exitFullscreen();
    } else if (document.msExitFullscreen) {
      document.msExitFullscreen();
    } else if (document.mozCancelFullScreen) {
      document.mozCancelFullScreen();
    } else if (document.webkitExitFullscreen) {
      document.webkitExitFullscreen();
    }
  }
}

document.getElementById("fullscreen").addEventListener("click", toggleFullscreen);
<button id="fullscren">Toggle full screen</button>

Но виджет вставляется в iframe, и это iframe не имеет allowfullscreen атрибут, и, следовательно, не позволяет кнопке переключаться в полноэкранный режим.

Я ищу способ добавить allowfullscreen приписать iframe выполнив некоторый Javascript изнутри iframe либо опубликовать проект с правильной конфигурацией, чтобы автоматически добавить этот атрибут.

Я пытался использовать аксессор Javascript parent.document, но я получаю ошибку:

Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.

1 ответ

Решение

С использованием parent Атрибут в Javascript достаточно. Затем вы можете добавить allowfullscreen атрибут с этой строкой:

parent.document.getElementsByTagName('iframe')[0].setAttribute('allowFullScreen', 'true');

Однако это не работает при отображении опубликованного проекта из локального источника (защита от источника). Он отлично работает при отображении с веб-сервера (даже localhost).

Другие вопросы по тегам