全屏API和外部链接



我正在尝试使用全屏API打开一个新页面(具有不同的布局)。当用户点击开放课程链接时,相应的页面/布局将以全屏模式打开。

我正在使用这个函数来启动全屏模式:

// Find the right method, call on correct element
function launchIntoFullscreen(element) {
  if(element.requestFullscreen) {
    element.requestFullscreen();
  } else if(element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
  } else if(element.webkitRequestFullscreen) {
    element.webkitRequestFullscreen();
  } else if(element.msRequestFullscreen) {
    element.msRequestFullscreen();
  }
}
// Launch fullscreen for browsers that support it!
launchIntoFullscreen(document.documentElement); // the whole page

问题是,API只接受在全屏模式下打开相同的页面或隐藏元素。我知道这是预期的行为。

我需要在全屏模式下打开一个不同的页面,当用户点击适当的链接。

有什么变通办法使之成为可能吗?

这是我目前用来切换全屏模式的。

function fullscreen() {
    var isInFullScreen = (document.fullscreenElement && document.fullscreenElement !== null) ||
        (document.webkitFullscreenElement && document.webkitFullscreenElement !== null) ||
        (document.mozFullScreenElement && document.mozFullScreenElement !== null) ||
        (document.msFullscreenElement && document.msFullscreenElement !== null);
    if (!isInFullScreen) {
        if (document.documentElement.requestFullscreen) {
            document.documentElement.requestFullscreen();
        } else if (document.documentElement.mozRequestFullScreen) {
            document.documentElement.mozRequestFullScreen();
        } else if (document.documentElement.webkitRequestFullScreen) {
            document.documentElement.webkitRequestFullScreen();
        } else if (document.documentElement.msRequestFullscreen) {
            document.documentElement.msRequestFullscreen();
        }
    } else {
        if (document.exitFullscreen) {
            document.exitFullscreen();
        } else if (document.webkitExitFullscreen) {
            document.webkitExitFullscreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.msExitFullscreen) {
            document.msExitFullscreen();
        }
    }
}

你不能全屏启动一个新页面,因为它是受浏览器安全限制的(正如你注意到的)。但是,您可以全屏打开。net或Java应用程序。

绕过浏览器安全的一个建议是,提供一个插件,可以与你的页面一起工作,将其功能扩展到用户的桌面。

您也可以尝试更低级的事件挂钩或尝试模拟它们(例如,伪造'Click'硬件事件)。如果需要,可以使用其他语言,如Flash, Java或。net来辅助。

希望这是足够的信息,让齿轮滚动和解决问题。我相信您可以理解为什么这是浏览器安全的一部分,但是绕过使用可扩展性的可能性也存在,所以我认为这是一个非常重要的因素。如果他们真的希望保证浏览器的安全,那么他们就不会有自动下载或自动运行内容的选项,javascript也不会有通过UI阻塞对话框或播放音频等垃圾邮件的能力。但我离题了。在"浏览器安全"的幌子下不使用这个功能是一个非常站不住脚的理由,因为还有很多更麻烦的问题。

相关内容

  • 没有找到相关文章

最新更新