2

在我的项目中,我有一个WebBrowser带有视频元素的控件,我想插入一个按钮,当我按下它时,视频元素将切换到全屏模式。

我试过这段代码:

var video = document.getElementById('video');

if (video.requestFullscreen) {
    video.requestFullscreen();
} else if (video.mozRequestFullScreen) {
    video.mozRequestFullScreen();
} else if (video.webkitRequestFullscreen) {
    video.webkitRequestFullscreen();
}

而且它不会起作用。我在一些文章中读到,在 IE 浏览器中无法使视频元素进入全屏。有什么解决办法吗?我做错什么了吗?

4

3 回答 3

2

您可以读取视口的宽度和高度,并将视频控件的宽度和高度设置为相同的值。无法正常全屏显示 - 但会填满浏览器中的空间。

于 2013-10-02T13:37:42.237 回答
2

根据MSDN,我们应该能够处理OnFullScreen事件并跟踪控件的FullScreen属性WebBrowser。您需要为此访问底层 ActiveX 对象。不过我自己没试过FullScreen/OnFullScreen

[更新]不幸的是,当通过元素的本机 UI 进入全屏模式时,不会触发OnFullScreen ,我刚刚验证了. IE元素的对象模型似乎也没有与全屏模式相关的任何方法/属性/事件。因此,以编程方式调整元素的大小可能是最佳选择。WebBrowser<video><video><video>

于 2013-10-05T21:37:01.160 回答
0

该方法需要特定的前缀才能在不同的浏览器中工作,对于 IE 浏览器,您应该使用:msRequestFullscreenmsRequestFullscreen()

见下文:

/* Get the element you want displayed in fullscreen mode (a video in this example): */
var video = document.getElementById("video"); 

/* When the openFullscreen() function is executed, open the video in fullscreen.
Note that we must include prefixes for different browsers, as they don't support the requestFullscreen property yet */

function openFullscreen() {
  if (video.requestFullscreen) {
    video.requestFullscreen();
  } else if (video.mozRequestFullScreen) { /* Firefox */
    video.mozRequestFullScreen();
  } else if (video.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
    video.webkitRequestFullscreen();
  } else if (video.msRequestFullscreen) { /* IE/Edge */
    video.msRequestFullscreen();
  }
}

顺便说一句,如果您想退出全屏模式,请使用msExitFullscreen()在 IE 浏览器中取消全屏模式的方法。

见下文:

/* Close fullscreen */
function closeFullscreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.mozCancelFullScreen) { /* Firefox */
    document.mozCancelFullScreen();
  } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */
    document.webkitExitFullscreen();
  } else if (document.msExitFullscreen) { /* IE/Edge */
    document.msExitFullscreen();
  }
}
于 2019-04-12T21:00:58.300 回答