diff options
author | Samuel Mannehed <samuel@cendio.se> | 2019-05-25 02:51:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-25 02:51:38 +0200 |
commit | 32e081950cf2e2cf1218f17acd16df6a33bce370 (patch) | |
tree | 8c5c8159b12c9b74afeabf3567b77ac57dc72d95 /app | |
parent | 755d6eae993a904c60122c4f6341c225d407ae5a (diff) | |
download | novnc-32e081950cf2e2cf1218f17acd16df6a33bce370.tar.gz |
Revert "Fullscreen from iframe (#1236)" (#1247)
This reverts commit 19cdc15aa314760446866a1bcc2db99a80479683.
Diffstat (limited to 'app')
-rw-r--r-- | app/ui.js | 79 |
1 files changed, 20 insertions, 59 deletions
@@ -1168,67 +1168,28 @@ const UI = { * ------v------*/ toggleFullscreen() { - // Determine the document using fullscreen. This may either be - // just the "document", but if using the viewer in an iframe, you need - // to use the parent window's "document" instead. - let doc = document; - if (window.self !== window.top) { - doc = window.parent.document; - } - // Check the fullscreen status using the correct document as - // a reference. The same document is then used to exit fullscreen. - if (doc.fullscreenElement || // alternative standard method - doc.mozFullScreenElement || // currently working methods - doc.webkitFullscreenElement || - doc.msFullscreenElement) { - if (doc.exitFullscreen) { - doc.exitFullscreen(); - } else if (doc.mozCancelFullScreen) { - doc.mozCancelFullScreen(); - } else if (doc.webkitExitFullscreen) { - doc.webkitExitFullscreen(); - } else if (doc.msExitFullscreen) { - doc.msExitFullscreen(); + if (document.fullscreenElement || // alternative standard method + document.mozFullScreenElement || // currently working methods + document.webkitFullscreenElement || + document.msFullscreenElement) { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitExitFullscreen) { + document.webkitExitFullscreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); } } else { - // To activate fullscreen, we need to find the correct document - // element, which is usually "document.documentElement". But when - // using the viewer in an iframe, this is actually the iframe - // element itself in the parent document. - let doc_el = document.documentElement; - if (window.self !== window.top) { - // Seek out the correct iframe from the parent document. - let iframes = window.parent.document - .getElementsByTagName('iframe'); - for (let i in iframes) { - let content_doc = null; - try { - content_doc = iframes[i].contentDocument; - } catch (err) { - // I may not be permitted to read the contentDocument - // of the iframe, but then it can't be me, so ignore. - } - if (content_doc === document) { - doc_el = iframes[i]; - // To use .body.msRequestFullscreen in IE, we need to - // set the document element accordingly. - // Note that the <iframe> must have the attribute - // "allowfullscreen" set for IE to allow the feature. - doc = iframes[i].contentDocument; - break; - } - } - } - // Activate fullscreen. All except MS use the document element for - // this. The behaviour of body.msRequestFullscreen is untested. - if (doc_el.requestFullscreen) { - doc_el.requestFullscreen(); - } else if (doc_el.mozRequestFullScreen) { - doc_el.mozRequestFullScreen(); - } else if (doc_el.webkitRequestFullscreen) { - doc_el.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else if (doc.body.msRequestFullscreen) { - doc.body.msRequestFullscreen(); + 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 if (document.body.msRequestFullscreen) { + document.body.msRequestFullscreen(); } } UI.updateFullscreenButton(); |