Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
webkitfullscreenchange事件未在iPad上启动_Ipad_Html_Video - Fatal编程技术网

webkitfullscreenchange事件未在iPad上启动

webkitfullscreenchange事件未在iPad上启动,ipad,html,video,Ipad,Html,Video,我正在为iPad设计一些视频控件。当用户单击一个按钮时,视频播放并立即全屏显示。当用户单击“退出全屏”按钮时,我希望视频暂停。如果我可以禁用“退出全屏”按钮并强制用户使用“完成”按钮,我会这样做,但这似乎不是一个选项 我的问题是webkitfullscreenchange事件似乎没有在iPad上启动。它在桌面上的Chrome浏览器中完美地工作。我已经读到,如果元数据没有加载(在iPad上播放视频之前不会加载-预加载被忽略),iPad浏览器将不会运行您的事件,但我已经确认在全屏事件触发之前加载了元

我正在为iPad设计一些视频控件。当用户单击一个按钮时,视频播放并立即全屏显示。当用户单击“退出全屏”按钮时,我希望视频暂停。如果我可以禁用“退出全屏”按钮并强制用户使用“完成”按钮,我会这样做,但这似乎不是一个选项

我的问题是webkitfullscreenchange事件似乎没有在iPad上启动。它在桌面上的Chrome浏览器中完美地工作。我已经读到,如果元数据没有加载(在iPad上播放视频之前不会加载-预加载被忽略),iPad浏览器将不会运行您的事件,但我已经确认在全屏事件触发之前加载了元数据。有人知道为什么webkitfullscreenchange事件不会在iPad上启动吗

<script type="text/javascript">
$(document).ready(function() {
    $(".jqVidLink").click(function(e) {
            e.preventDefault();
            var vidId = $(this).attr("name");
            playPause(document.getElementById(vidId));
    }); 
    $(".jqVideo").each(function() {
        this.addEventListener("webkitfullscreenchange", function(){
            alert("hi2"); //never fires
             if (document.webkitIsFullScreen == false) {
                 playPause(this);
             }
        }, false);
        this.addEventListener("loadedmetadata", function() {
            alert("hi");  //firing
            this.webkitEnterFullscreen();   
        }, false);
    });
});

 function playPause(myVideo) {
    if (myVideo.paused){
        myVideo.play();

    }
    else
        myVideo.pause();
    }

$(文档).ready(函数(){
$(“.jqVidLink”)。单击(函数(e){
e、 预防默认值();
var vidId=$(this.attr(“name”);
播放暂停(document.getElementById(vidId));
}); 
$(“.jqVideo”)。每个(函数(){
addEventListener(“webkitfullscreenchange”,function()){
警报(“hi2”);//永不开火
if(document.webkitIsFullScreen==false){
播放暂停(本);
}
},假);
this.addEventListener(“loadedmetadata”,function()){
警报(“嗨”);//开火
此.webkitEnterFullscreen();
},假);
});
});
功能播放暂停(myVideo){
如果(myVideo.paused){
myVideo.play();
}
其他的
myVideo.pause();
}

让我想起一篇文章,称iPad为新的IE6。不要期望iOS浏览器的行为类似于桌面safari。 作为一种解决方法,您可以在线显示视频(->不使用本机全屏),并添加自己的控件。这种方法的缺点是浏览器导航浪费了一些垂直空间。好处是你可以完全控制正在发生的事情。按照这个想法,你可以通过将视频(和你的自定义控件)放在一个容器中来模拟全屏,然后这个容器必须被固定,并且宽度和高度的大小必须为100%——我通过添加一个类来做到这一点,因为当切换回正常状态时,你不必担心以前的大小。相反,您只需再次删除该类


如果您想这样做,还需要记住一件事:您不能在iOS上通过JS在容器内移动视频节点。相反,您必须以html格式提供完整的标记,或者克隆视频节点,删除原始标记并将克隆的标记插入容器中

让我想起一篇文章,称iPad为新的IE6。不要期望iOS浏览器的行为类似于桌面safari。 作为一种解决方法,您可以在线显示视频(->不使用本机全屏),并添加自己的控件。这种方法的缺点是浏览器导航浪费了一些垂直空间。好处是你可以完全控制正在发生的事情。按照这个想法,你可以通过将视频(和你的自定义控件)放在一个容器中来模拟全屏,然后这个容器必须被固定,并且宽度和高度的大小必须为100%——我通过添加一个类来做到这一点,因为当切换回正常状态时,你不必担心以前的大小。相反,您只需再次删除该类


如果您想这样做,还需要记住一件事:您不能在iOS上通过JS在容器内移动视频节点。相反,您必须以html格式提供完整的标记,或者克隆视频节点,删除原始标记并将克隆的标记插入容器中

您可以尝试
.element:-webkit全屏
css属性


我无法为Safari上的iFrame注册全屏退出事件

您可以尝试
.element:-webkit全屏
css属性

我无法在Safari上注册iframes的全屏退出事件,这里也一样(老问题,老ipad)。FWIW,我确实在窗口对象上获得“调整大小”事件。如果您进入全屏,您可以标记自己,并且相信下一次调整大小是全屏更改。或者一个方向改变…这里也是(老问题,老ipad)。FWIW,我确实在窗口对象上获得“调整大小”事件。如果您进入全屏,您可以标记自己,并且相信下一次调整大小是全屏更改。或者一个方向的改变。。。