2017-01-31 15 views
0

Adob​​e Captivate用のウィジェットを作成していますが、これはHTML5で動作する必要があります。このウィジェットには、フルスクリーンモードを切り替えるボタンがあります。基本的には、プラグインは以下のようになります。Adob​​e Captivateのウィジェットからiframe属性を編集する

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に挿入され、このiframeallowfullscreen属性を持っていないので、フルスクリーンを切り替えるには、ボタンを防ぎますモード。

私は、自動的にこの属性を追加するための正しい構成でプロジェクトを発行するか、iframeの内側からいくつかのJavascriptを実行することにより、iframeからallowfullscreen属性を追加するためのいずれかの方法を探しています。

私は、Javascriptのアクセサparent.documentを使用しようとしましたが、私はエラーを取得:

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

ボタンはCPM.jsファイルを編集し、iframe属性に 'allowfullscreen:" true "'属性を追加すると機能します。明らかに、それは解決策ではありません。プロジェクトを公開した後にファイルの編集が必要なためです。 – Dunatotatos

答えて

0

JavaScriptでparent属性が十分にある使用。あなたは、この行でallowfullscreen属性を追加することができます:ローカルソース(クロスオリジンの保護)から発行されたプロジェクトを表示するときに

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

しかし、これは動作しません。 Webサーバー(ローカルホストでさえ)から表示されたときにうまく動作します。

関連する問題