JavaScript requestFullscreen 在 Edge 中不工作
JavaScript requestFullscreen not working in Edge
我正在尝试通过 JavaScript 使视频(或其他任何内容)在 Edge 浏览器中进入全屏模式。但我无法让它工作。在 Chrome 中,一切都按预期进行。
我尝试了js命令行工具中的所有步骤。正确的 html 视频元素是通过行 document.getElementById("video_player");
获取的。然后我尝试输入命令 video.requestFullscreen();
,但它什么也没做。甚至没有错误:(
我已经在关于:标志设置中激活了全屏 API 并且我已经关闭了所有浏览器扩展。
HTML 视频元素不在 <iframe>
中
编辑:
这是我的完整代码。 js文件加载在HTML文档的末尾。如您所见,它现在并没有做太多事情。
console.log("Running");
var video = document.getElementById("video_player");
FullScreenStart();
function FullScreenStart(){
console.log("AutoFullScreen started");
console.log(video);
if (video.requestFullscreen) {
video.requestFullscreen();
} else if (video.mozRequestFullScreen) {
video.mozRequestFullScreen();
} else if (video.webkitRequestFullscreen) {
video.webkitRequestFullscreen();
} else if (video.msRequestFullscreen) {
video.msRequestFullscreen();
}
}
function FullScreenOn(){
console.log("FullScreen activated");
}
function FullScreenOff(){
console.log("FullScreen deactivated");
}
document.onwebkitfullscreenchange = function(evt) {
if(document.webkitIsFullScreen){
FullScreenOn();
} else {
FullScreenOff();
}
};
拜托,有人可以帮我让它工作吗?我已经在这个问题上浪费了两天了。
我用你上面的 posted 代码做了一个测试。
我发现您的代码无法在任何浏览器中运行,如果您使用代码调用全屏 api。
我不确定,它是如何在 chrome 上工作的,正如你在原文 post 中所说的那样。
如果您参考文档,则可以在下面找到信息。
Note: This method must be called while responding to a user interaction or a device orientation change; otherwise it will fail.
参考:
如文档中所述,如果我从代码中调用它,方法在 Chrome 和 Edge 中都会失败,但如果用户尝试使用按钮单击来调用它,它就会工作。
示例代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h2>Fullscreen with JavaScript</h2>
<p>Click on the button to open the video in fullscreen mode.</p>
<button onclick="openFullscreen();">Open Video in Fullscreen Mode</button>
<p><strong>Tip:</strong> Press the "Esc" key to exit full screen.</p>
<video width="100%" controls id="myvideo">
<source src="rain.mp4" type="video/mp4">
<source src="rain.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
<script>
/* Get the element you want displayed in fullscreen */
var elem = document.getElementById("myvideo");
/* Function to open fullscreen mode */
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) { /* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE/Edge */
elem.msRequestFullscreen();
}
}
</script>
<p>Note: Internet Explorer 10 and earlier does not support fullscreen mode.</p>
</body>
</html>
参考:
HTML DOM requestFullscreen() Method
这是有意为之的,因为如果它从代码中得到工作,那么很多网站会在没有征得用户许可的情况下开始显示弹出窗口。这对用户来说可能很烦人。
我正在尝试通过 JavaScript 使视频(或其他任何内容)在 Edge 浏览器中进入全屏模式。但我无法让它工作。在 Chrome 中,一切都按预期进行。
我尝试了js命令行工具中的所有步骤。正确的 html 视频元素是通过行 document.getElementById("video_player");
获取的。然后我尝试输入命令 video.requestFullscreen();
,但它什么也没做。甚至没有错误:(
我已经在关于:标志设置中激活了全屏 API 并且我已经关闭了所有浏览器扩展。
HTML 视频元素不在 <iframe>
编辑:
这是我的完整代码。 js文件加载在HTML文档的末尾。如您所见,它现在并没有做太多事情。
console.log("Running");
var video = document.getElementById("video_player");
FullScreenStart();
function FullScreenStart(){
console.log("AutoFullScreen started");
console.log(video);
if (video.requestFullscreen) {
video.requestFullscreen();
} else if (video.mozRequestFullScreen) {
video.mozRequestFullScreen();
} else if (video.webkitRequestFullscreen) {
video.webkitRequestFullscreen();
} else if (video.msRequestFullscreen) {
video.msRequestFullscreen();
}
}
function FullScreenOn(){
console.log("FullScreen activated");
}
function FullScreenOff(){
console.log("FullScreen deactivated");
}
document.onwebkitfullscreenchange = function(evt) {
if(document.webkitIsFullScreen){
FullScreenOn();
} else {
FullScreenOff();
}
};
拜托,有人可以帮我让它工作吗?我已经在这个问题上浪费了两天了。
我用你上面的 posted 代码做了一个测试。
我发现您的代码无法在任何浏览器中运行,如果您使用代码调用全屏 api。
我不确定,它是如何在 chrome 上工作的,正如你在原文 post 中所说的那样。
如果您参考文档,则可以在下面找到信息。
Note: This method must be called while responding to a user interaction or a device orientation change; otherwise it will fail.
参考:
如文档中所述,如果我从代码中调用它,方法在 Chrome 和 Edge 中都会失败,但如果用户尝试使用按钮单击来调用它,它就会工作。
示例代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h2>Fullscreen with JavaScript</h2>
<p>Click on the button to open the video in fullscreen mode.</p>
<button onclick="openFullscreen();">Open Video in Fullscreen Mode</button>
<p><strong>Tip:</strong> Press the "Esc" key to exit full screen.</p>
<video width="100%" controls id="myvideo">
<source src="rain.mp4" type="video/mp4">
<source src="rain.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
<script>
/* Get the element you want displayed in fullscreen */
var elem = document.getElementById("myvideo");
/* Function to open fullscreen mode */
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) { /* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE/Edge */
elem.msRequestFullscreen();
}
}
</script>
<p>Note: Internet Explorer 10 and earlier does not support fullscreen mode.</p>
</body>
</html>
参考:
HTML DOM requestFullscreen() Method
这是有意为之的,因为如果它从代码中得到工作,那么很多网站会在没有征得用户许可的情况下开始显示弹出窗口。这对用户来说可能很烦人。