Javascript firefox浏览器拒绝全屏更改

Javascript firefox浏览器拒绝全屏更改,javascript,firefox,fullscreen,Javascript,Firefox,Fullscreen,当我们点击我的网站时,我试图让它成为全屏的一个元素,它可以与chrome,IE一起工作,但不能与firefox一起工作 我去了,我测试了他们的代码,这些浏览器都没有问题 这里是我想全屏显示的网站部分 <div class="wrap"> <div class="signin"> <div style="margin: 2px 0px -25px 10px;"><h1>Sign In or <a href="<?p

当我们点击我的网站时,我试图让它成为全屏的一个元素,它可以与chrome,IE一起工作,但不能与firefox一起工作

我去了,我测试了他们的代码,这些浏览器都没有问题

这里是我想全屏显示的网站部分

<div class="wrap">
    <div class="signin">
        <div style="margin: 2px 0px -25px 10px;"><h1>Sign In or <a href="<?php echo $this->url(array('module' => 'default','controller'=>'paid-sign-up','action'=>'index'),null,true); ?>" style="color:#F00;text-decoration:none;">Signup</a></h1></div>
        <?php echo $this->signin(); ?>
        <span class="forget">
        <a href="<?php echo $this->url(array('module' => 'default','controller'=>'forgot-password','action'=>'index'),null,true); ?>">Forgotten Password?</a> </span>
    </div>

登录或

这里是我使用的脚本

    <script type="text/javascript">
  var inFullScreen = false; // flag to show when full screen

  var fsClass = document.getElementsByClassName("wrap");
  for (var i = 0; i < fsClass.length; i++) {
    fsClass[i].addEventListener("click", function (evt) {
      if (inFullScreen == false) {
        makeFullScreen(evt.target); // open to full screen
      } else {
        reset();
      }
    }, false);
  }


  function makeFullScreen(divObj) {
alert (divObj);
  if (divObj.requestFullscreen) {
alert ('standard');
        divObj.requestFullscreen();
    }
    else if (divObj.msRequestFullscreen) {
alert ('ms');
      divObj.msRequestFullscreen();
    }
    else if (divObj.mozRequestFullScreen) {
alert ('moz');
      divObj.mozRequestFullScreen();
    }
    else if (divObj.webkitRequestFullscreen) {
alert ('webkit');
      divObj.webkitRequestFullscreen();
    }
    inFullScreen = true;
    return;
  }

  function reset() {
    if (document.exitFullscreen) {
      document.exitFullscreen();
    }
    else if (document.msExitFullscreen) {
      document.msExitFullscreen();
    }
    else if (document.mozCancelFullScreen) {
      document.mozCancelFullScreen();
    }
    else if (document.webkitCancelFullScreen) {
      document.webkitCancelFullScreen();
    }
    inFullScreen = false;
    return;
  }


</script>

var inFullScreen=false;//全屏显示时要显示的标志
var fsClass=document.getElementsByClassName(“wrap”);
对于(变量i=0;i

最后一个有用的信息是,我的网站是一个zent framework网站,这就是为什么会有一些PHP。

此代码段适用于大多数浏览器,包括Mozilla Firefox。具体来说,Mozilla Firefox坚持事件处理程序中的代码在1秒内执行。否则全屏请求将被拒绝。参考:

HTML

有关更多详细信息,请参阅全屏API


上面代码段的工作演示:

您检查控制台了吗?当全屏请求失败时,浏览器会记录一个错误。我没有检查,因为我不知道。因此,控制台中显示的错误是:“全屏请求被拒绝,因为没有从短时间运行的用户生成的事件处理程序中调用元素.mozRequestFullScreen()。”我真的不知道这是什么意思。这意味着如果没有某些用户交互触发活动,则无法强制全屏(就像点击按钮)。是的,但是,当用户点击div时会触发全屏,那么问题是什么呢?哦,你说得对:)在这种情况下,我不知道为什么请求会失败。我要做一个JSFIDLE。这几乎就是OP中的内容!好的,但是就像我在我的帖子的评论中对Pointy的回复:“当用户点击div时会触发全屏”。那么问题出在哪里呢?可能是事件处理程序的执行时间超过了1秒。在这种情况下,Mozilla拒绝全屏请求。您的代码在另一个函数中具有事件处理程序,然后您调用makeFullScreen()。尝试将事件处理程序集成到makeFullScreen()函数中,以在1秒Mozilla屏障内执行代码,如上面的代码段所示。console.log()可以替换并报告较慢的用户对话框alert()。
<button id="view-fullscreen">Fullscreen</button>