标签: html5-fullscreen

无法在'Element'上执行'requestFullScreen':API只能由用户手势启动

我想让我的HTML5游戏在发布时全屏显示.当我点击一个按钮时,它会全屏显示.但是当我使用window.onload使其进入全屏上载时,它在控制台上回复无法在'Element'上执行'requestFullScreen':API只能由用户手势启动.我正在使用铬.有解决方法吗?

我的代码:

    <!DOCTYPE html>
    <html>
    <head>
<script>
window.onload = openfullscreen();

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();
}
}

function openfullscreen() {

launchIntoFullscreen(document.documentElement);
}

function exitFullscreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
window.close();
}

function fix() {
var screenwidth = screen.width;
var screenhei = screen.height;
document.getElementById('ifam').width = screenwidth;
document.getElementById('ifam').height = screenhei;
}
</script>
<style>
  #ifam {
    position:fixed; …
Run Code Online (Sandbox Code Playgroud)

javascript html5 html5-fullscreen

11
推荐指数
1
解决办法
3万
查看次数

HTML5视频控件在Android设备上以全屏模式消失

我正在使用带有角度材料前端的cordova开发一个跨平台应用程序.

我在md-card列表中使用HTML5视频标签来播放带有外部网址的视频.内联时视频播放正确,并按预期显示本机控件.

    <video class="project-video" video-directive item="$ctrl.project" ng-src="{{$ctrl.project.videoUrl | trustUrl}}" preload="auto"
      controls poster="{{$ctrl.project.video.thumbnail_url}}">
      Your browser does not support the video tag.
    </video>
Run Code Online (Sandbox Code Playgroud)

但是,当我单击"切换全屏"按钮时,视频会进入全屏,但默认控件会消失.在此之后我无法回到应用程序 - 本机安卓后退按钮不会关闭整个屏幕 - 而是关闭整个应用程序.

我正在寻找的解决方案将使控件始终显示在全屏模式下; 这可以解决在iOS上运行相同代码的框.

因此,我不想花时间为Android开发我自己的自定义视频控件,如果我可以帮助它!因此,请不要发布关于如何做到这一点的答案(SO和其他地方已有很多).

我正在使用魅族m2注意Android设备.

谢谢!

编辑:

控件仍在那里,但在css的阴影DOM树中显示为大小为0 x 0px.即使我使用!important标志在chrome dev工具中更改它们的大小,它们也不会显示出来.

有任何想法吗?

android html5-video cordova android-fullscreen html5-fullscreen

10
推荐指数
1
解决办法
1100
查看次数

Firefox全屏视频附加DOM元素

无论我如何将DOM中的元素作为html5视频上的叠加(静态或动态),Firefox中的这些元素都不可见,尽管z-index设置为2147483647,不透明度为1和显示块.

看到2个类似的答案,在Chrome中工作,但不在FF中:

覆盖HTML5全屏视频

显示全屏元素以外的元素(HTML5全屏API)

firefox z-index html5-video html5-fullscreen

10
推荐指数
1
解决办法
1942
查看次数

如果使用F11触发,则全屏API无法正常工作

我为我的应用程序实现了全屏切换功能,它实际上运行良好,在最新的Chrome,Firefox,IE和Opera上进行了测试.我有一种激活方法,一种用于停用全屏模式:

  public deactivateFullscreen(element) {
    if (element.requestFullscreen) {
      element.requestFullscreen();
    } else if (element.webkitRequestFullscreen) {
      document.webkitCancelFullScreen();
    } else if (element.mozRequestFullScreen) {
      document.mozCancelFullScreen();
    }else if(element.msRequestFullscreen){
      document.msExitFullscreen();
    }
  }

  public activateFullscreen(element) {
    if (element.requestFullScreen) {
      element.requestFullScreen();
    } else if (element.webkitRequestFullScreen) {
      element.webkitRequestFullScreen();
    } else if (element.mozRequestFullScreen) {
      element.mozRequestFullScreen();
    }else if(element.msRequestFullscreen){
      element.msRequestFullscreen();
    }
  }
Run Code Online (Sandbox Code Playgroud)

因此,当从UI触发时,它们都能正常工作.唯一的问题是一旦我进入全屏模式使用F11我无法使用该deactivateFullscreen功能退出它.据我所知,对于浏览器,一旦我点击就没有设置标志F11.我尝试使用以下方法测试它:

  public isFullscreen(element) {
    if(element.webkitIsFullScreen || element.mozFullscreen || element.msFullscreenElement || element.fullscreenElement || element.fullscreen || element.webkitFullscreenElement || element.mozFullScreenElement){
      return true;
    }
    return false;
  }
Run Code Online (Sandbox Code Playgroud)

无论我是否全屏,这总是返回false.有没有其他方法可以检测浏览器当前是否处于全屏模式?或者我在这里错过了一些概念?

我尝试的另一件事是捕获keydown事件 …

html jquery typescript html5-fullscreen

9
推荐指数
2
解决办法
1788
查看次数

当我按下HTML5视频元素的默认全屏按钮时如何捕获全屏事件?

我在使用HTML5 video标签时遇到问题iconic.

这是我的模板的一部分:

<ion-view>
   <ion-content overflow-scroll="true" data-tap-disable="true">
      <div class="list card">
        <div class="item item-body" style="padding: 5% 5% 5% 5%">
            <div class="player">
            <video controls="controls" autoplay id="sr"></video>
          </div>
        </div>
      </div>
   </ion-content>
</ion-view>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

.controller('viewVideoCtrl', function ($scope, $state, $stateParams) {
   var videoPath = URL + "uploadFiles" + $stateParams.videoPath;

   var videoObject = document.getElementById("sr");
   videoObject.src = videoPath;
   var webkitBeginFullScreen = function () {
      alert("video has fullScreen!");
   };

   var onVideoEndsFullScreen = function () {
     alert("fullScreen has end!");
   };

   videoObject.addEventListener('webkitbeginfullscreen', webkitBeginFullScreen, false);
   videoObject.addEventListener('webkitendfullscreen', onVideoEndsFullScreen, false); …
Run Code Online (Sandbox Code Playgroud)

javascript html5 html5-video ionic-framework html5-fullscreen

6
推荐指数
1
解决办法
7285
查看次数

全屏API;浏览器认为我不是从用户手势开始

我正在使用 HTML5 元素开发自定义视频播放器video,但无法让全屏按钮与Fullscreen API一起使用。

当我点击它时,我收到错误消息:

Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.
Run Code Online (Sandbox Code Playgroud)

但是,我正在使用用户手势发起调用requestFullscreen...除非我误解了用户手势的构成。单击元素是一种用户手势,不是吗?

我意识到 SO 上有很多关于全屏 API 的问题,但看起来很多人都想在没有用户交互的情况下启动全屏模式。

我究竟做错了什么?

有一支带有此代码,但当我找到解决方案时,我可能会更改它。我不会改变这里的代码。

这是代码:

Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.
Run Code Online (Sandbox Code Playgroud)
/* Get our elements. */
const player = document.querySelector('.player');
const video = player.querySelector('.viewer');
const progress = player.querySelector('.progress');
const progressBar = player.querySelector('.progress__filled');
const toggle = player.querySelector('.toggle');
const skipButtons = …
Run Code Online (Sandbox Code Playgroud)

html javascript fullscreen html5-fullscreen

6
推荐指数
1
解决办法
6617
查看次数

iPad上的Chrome的全屏API?

我正在创建一个小部件,单击一个按钮后,我希望将其全屏显示。我已经实现了全屏API,并且在所有浏览器上都可以正常运行。但是,我正在创建此小部件以仅在iPad上用作交互式信息亭。我可以自由使用最合适的浏览器,但无法在iPad上使用全屏功能。尝试了多种不同的选择,但还不够……我有以下代码可在普通桌面浏览器上运行:

var element = document.getElementById('element');
var fullscreenButton = document.getElementById('fullscreenButton');

fullscreenButton.addEventListener('click', function(){
    if(element.requestFullscreen){
        element.requestFullscreen();
    }else if(element.webkitRequestFullscreen){
        element.webkitRequestFullscreen();
    }else if(element.mozRequestFullScreen){
        element.mozRequestFullScreen();
    }else if(element.msRequestFullscreen){
        element.msRequestFullscreen();
    } else{
        element.webkitEnterFullscreen();
    }
});
Run Code Online (Sandbox Code Playgroud)

我有什么办法可以创建一种应用程序(基本上是幻灯片放映),以便以任何方式在iPad上进入全屏模式?预先感谢所有提示/帮助。

javascript html5 ipad ios html5-fullscreen

6
推荐指数
1
解决办法
2344
查看次数

移动浏览器 (chrome) 中的 HTML5 全屏模式忽略视口配置 - 错误还是功能?

我的应用程序显示移动设备的一些页面。此类页面会<viewport>仔细计算标签,以便它们 100% 适合设备屏幕,例如:

<meta id="sysviewport" name="viewport" content="initial-scale=0.79, minimum-scale=0.79, maximum-scale=0.79, user-scalable=no, width=device-width"> 
Run Code Online (Sandbox Code Playgroud)

在应用程序中,您可以通过调用 HTML5 api 进入全屏模式:

$(document.documentElement).fullScreen(true);
Run Code Online (Sandbox Code Playgroud)

(jQuery 模块只是调用requestFullScreen()查找供应商前缀等。)

发生的情况是,在全屏模式下,视口比例被忽略(我猜是重置为“1”)。当我退出全屏模式时,视口比例再次受到尊重。

这是一个错误吗?文档中的灰色区域?或者是全屏模式的预期功能?也有人可以确认这种情况也发生在移动 Safari 上吗?

<body>在全屏模式下通过 azoom或手动缩放自己做了一些测试transform,但与viewport缩放相比,性能很糟糕。

html android google-chrome viewport html5-fullscreen

5
推荐指数
0
解决办法
2459
查看次数

退出全屏无法在 chrome 上工作?[我错过了什么?]

我的屏幕上有两个按钮。每个人都会触发一段 javascript 代码来进入和退出全屏模式。

按钮 1:进入全屏模式

按钮 2:退出全屏模式

如果我首先单击按钮 1,它会将我带到全屏模式,然后如果我单击按钮 2,它将退出全屏模式。

但是,如果我使用F11或通过chrome menu进入全屏模式,意外地按钮 2不再工作。

为什么会发生这种情况以及如何解决?

按钮 1 代码:

goFullscreen();
function goFullscreen() {
    var el = document.documentElement,
      rfs = el.requestFullscreen
        || el.webkitRequestFullScreen
        || el.mozRequestFullScreen
        || el.msRequestFullscreen 
    ;

    rfs.call(el);
}
Run Code Online (Sandbox Code Playgroud)

按钮 2 代码:

document.webkitCancelFullScreen();
Run Code Online (Sandbox Code Playgroud)

我也试过这个,但没有运气:

document.webkitExitFullscreen();
Run Code Online (Sandbox Code Playgroud)

javascript html5-fullscreen

5
推荐指数
1
解决办法
2148
查看次数

什么构成用户手势

我最近为 javascript 编写了一个菜单界面,它可以让您动态地向其中添加选项,并且主要与 mouseEnter Events 一起使用。我通过请求/退出全屏向它添加了一些基本的视频控件,这些控件大部分时间显示在这些 mouseEnter 事件之一上,Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.但是(奇怪的部分:) 有时它可以工作,我不确定浏览器 api 如何决定一个动作是用户手势与否 oO 任何帮助将不胜感激,谢谢

javascript google-chrome html5-fullscreen

5
推荐指数
1
解决办法
2277
查看次数