Javascript 如何在全屏模式下循环

Javascript 如何在全屏模式下循环,javascript,while-loop,Javascript,While Loop,我想循环全屏,我想while循环等待3秒,然后再使全屏变快,下面是我的代码: <script> function vid() while (true) { wait(3) var doc = document.documentElement; var vid = document.getElementById("myVideo"); document.getElementById("myVideo").sty

我想循环全屏,我想while循环等待3秒,然后再使全屏变快,下面是我的代码:

<script>
  function vid() while (true) {
    wait(3)
    var doc = document.documentElement;
    var vid = document.getElementById("myVideo");
    document.getElementById("myVideo").style.display = "inline-block";
    document.getElementById("everything").style.display = "none";
    doc.requestFullscreen();
    doc.webkitRequestFullscreen();
  }
</script>

函数vid()while(true){
等等(3)
var doc=document.documentElement;
var vid=document.getElementById(“myVideo”);
document.getElementById(“myVideo”).style.display=“内联块”;
document.getElementById(“一切”).style.display=“无”;
doc.requestFullscreen();
doc.webkitRequestFullscreen();
}
这不起作用,如果我在网页崩溃时使用了一个常规的,也不起作用。

您可以使用
setInterval
通过首先传递一个
函数来工作。此函数将在每次触发间隔时执行。第二个参数是每个间隔之间的时间,以毫秒为单位

语法如下所示

setInterval(function, delay)
下面的示例是在
setInterval
中实现代码

setInterval(function() {
  var doc = document.documentElement;
  var vid = document.getElementById("myVideo");
  var everything = document.getElementById("everything");

  vid.style.display = "inline-block";
  everything.style.display = "none";

  doc.requestFullscreen();
  doc.webkitRequestFullscreen();
}, 3000);
还可以引用函数(和延迟)以获得更详细的语法

var delay = 3000;

function forceFullScreen() {
  var doc = document.documentElement;
  var vid = document.getElementById("myVideo");
  var everything = document.getElementById("everything");

  vid.style.display = "inline-block";
  everything.style.display = "none";

  doc.requestFullscreen();
  doc.webkitRequestFullscreen();
}

setInterval(forceFullScreen, delay);
编辑:结果表明,强制用户进入全屏是行不通的。另一种方法是显示一个按钮,监听单击事件,并在用户单击此按钮时启动全屏模式

创建一个按钮并给它一个唯一的标识符,以便我们知道从JavaScript中选择哪个按钮

<button id="fullscreen">Go into fullscreen mode</button>

使用
setTimeout()
在延迟后执行代码。不要使用
while(true)
循环,它将锁定浏览器。那么我使用什么?顺便说一句,正如我所说的,thxUse
setTimeout
。这可以通过每隔给定毫秒执行一次回调函数来实现。完整的代码应该是这样的吗?setInterval(函数playVid(){var e=document.documentElement,t=document.getElementById(“myVideo”);(document.getElementById(“myVideo”).style.display=“inline block”),(document.getElementById(“一切”).style.display=“none”)、e.requestFullscreen()、e.webkitRequestFullscreen()、t.play(),(document.title=“Ha”);},3000);是的。将它放在
标记中或作为
.js
文件。将脚本放在HTML中关闭
标记之前。但要清楚,如果您打算每3秒强制全屏模式,那么这就是您需要的。不知道浏览器是否允许,但我想我们很快就会知道;).好的,它工作正常,但是我用esc退出了全屏,它没有把我放回去,也可以在单击时启动设置间隔吗?这是正确的。浏览器会受到保护,防止这些做法破坏用户体验。因此,只要用户没有明确选择进入全屏模式,例如单击按钮,它就不会工作。您可以在单击事件时启动
setInterval
,但在用户决定退出全屏模式后,您仍然会遇到无法强制全屏模式的问题。我的建议是丢失间隔/循环/强制代码,并将控件提供给用户。或者至少让全屏模式更具吸引力。那么你能让js选择一个按钮吗?让那个按钮把他们放在全屏上?
// Select the element (button) with the id fullscreen.
const fullscreenButton = document.getElementById('fullscreen');

function forceFullScreen() {
  var doc = document.documentElement;
  var vid = document.getElementById("myVideo");
  var everything = document.getElementById("everything");

  vid.style.display = "inline-block";
  everything.style.display = "none";

  doc.requestFullscreen();
  doc.webkitRequestFullscreen();
}

// Listen for the click and call forceFullScreen when a click happens.
fullscreenButton.addEventListener('click', forceFullScreen);