首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE11不侦听MSFullscreenChange事件

问IE11不侦听MSFullscreenChange事件
EN

Stack Overflow用户
提问于 2014-01-31 16:40:17
回答 3查看 3.3K关注 0票数 6

我正在尝试使用Bigscreen.js在IE11中使用全屏。但是IE11不会监听"MSFullscreenChange“事件。

代码语言:javascript
复制
document.addEventListener("MSFullscreenChange", function () {
     if (document.msFullscreenElement != null) {
         console.info("Went full screen");
     } else {
         console.info("Exited full screen");              
     }
});

把这个放到控制台中,它不会在全屏上打印任何东西。检测此事件的替代方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2017-11-09 02:03:56

实际上,Microsoft文档是错误的。

我正在对IE11进行测试,它没有MSFullscreenChange事件侦听器。相反,它具有onmsfullscreenchange事件处理程序。

所以,只要改变这一点,你的代码就应该可以工作了。

票数 0
EN

Stack Overflow用户

发布于 2020-10-28 17:49:14

我在my word game中遇到了类似的问题,在Internet Explorer11中没有调用MSFullscreenChange侦听器:

​

​

为了解决这个问题,我必须将侦听器附加到document而不是DOM元素(在我的例子中是#fullDiv)。即使附加到DOM元素的所有其他侦听器都会全屏显示:

代码语言:javascript
复制
var domElem = document.getElementById('fullDiv');

domElem.addEventListener('fullscreenchange', updateFullCheck);
domElem.addEventListener('webkitfullscreenchange', updateFullCheck);
domElem.addEventListener('mozfullscreenchange', updateFullCheck);
document.addEventListener('MSFullscreenChange', updateFullCheck); // IE 11

下面是我在IE11,Edge,Safari/MacOS,Chrome,Firefox,Opera中工作的完整代码:

代码语言:javascript
复制
'use strict';

function isFullscreenEnabled() {
    return  document.fullscreenEnabled || 
            document.webkitFullscreenEnabled || 
            document.mozFullScreenEnabled || 
            document.msFullscreenEnabled;
}

function getFullscreenElement() {
    return  document.fullscreenElement || 
            document.webkitFullscreenElement || 
            document.mozFullScreenElement || 
            document.msFullscreenElement;
}

jQuery(document).ready(function($) {
    if (isFullscreenEnabled()) {
        function updateFullCheck() {
            if (getFullscreenElement()) {
                $('#fullCheck').prop('checked', true).checkboxradio('refresh');
                $('#leftDiv').css('padding', '24px 0 24px 24px');
                $('#rightDiv').css('padding', '24px 24px 24px 0');
            } else {
                $('#fullCheck').prop('checked', false).checkboxradio('refresh');
                $('#leftDiv').css('padding', '0');
                $('#rightDiv').css('padding', '0');
            }
        }

        var domElem = document.getElementById('fullDiv');

        domElem.addEventListener('fullscreenchange', updateFullCheck);
        domElem.addEventListener('webkitfullscreenchange', updateFullCheck);
        domElem.addEventListener('mozfullscreenchange', updateFullCheck);
        document.addEventListener('MSFullscreenChange', updateFullCheck); // IE 11

        $('#fullCheck').checkboxradio().click(function(ev) {
            ev.preventDefault();
            ev.stopPropagation();
            
            if (getFullscreenElement()) {
                if (document.exitFullscreen) {
                    document.exitFullscreen();
                } else if (document.mozCancelFullScreen) {
                    document.mozCancelFullScreen();
                } else if (document.webkitCancelFullScreen) {
                    document.webkitCancelFullScreen();
                } else if (document.msExitFullscreen) {
                    document.msExitFullscreen();
                    }
                } else {
                    if (domElem.requestFullscreen) {
                        domElem.requestFullscreen();
                    } else if (domElem.mozRequestFullScreen) {
                        domElem.mozRequestFullScreen();
                    } else if (domElem.webkitRequestFullscreen) {
                        domElem.webkitRequestFullscreen();
                    } else if (domElem.msRequestFullscreen) {
                        domElem.msRequestFullscreen();
                    }
                }
            }).checkboxradio('enable');
    }
});
票数 0
EN

Stack Overflow用户

发布于 2014-02-04 09:17:07

如果我导航到http://brad.is/coding/BigScreen/,启动F12开发人员工具,将脚本粘贴到控制台中,然后单击“运行脚本”按钮,单击演示图像就会在控制台中按预期显示“to screen”消息。

在控制台中粘贴多行脚本时,您必须单击“Run script”按钮或按Ctrl + Enter才能实际提交脚本以供执行。只需按Enter键即可在脚本中插入一个换行符。或者,您可以将脚本更改为单行。在这种情况下,按Enter键将提交脚本以供执行。

披露:我是微软Fullscreen API实现团队中的一员。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21475597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档