Update fullscreen.js
add Fullscreen support for IE and fix fullscreen event bug for Firefox
This commit is contained in:
parent
e9419c7ebb
commit
001b61da6e
|
|
@ -22,15 +22,33 @@ class FullScreen {
|
|||
this.player.events.trigger('fullscreen_cancel');
|
||||
}
|
||||
};
|
||||
this.player.container.addEventListener('fullscreenchange', fullscreenchange);
|
||||
this.player.container.addEventListener('mozfullscreenchange', fullscreenchange);
|
||||
this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);
|
||||
const docfullscreenchange = () => {
|
||||
let fullEle = document.fullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
|
||||
if(fullEle && fullEle !== this.player.container){
|
||||
return;
|
||||
}
|
||||
if(fullEle){
|
||||
this.player.events.trigger('fullscreen');
|
||||
} else {
|
||||
utils.setScrollPosition(this.lastScrollPosition);
|
||||
this.player.events.trigger('fullscreen_cancel');
|
||||
}
|
||||
}
|
||||
if(/Firefox/.test(navigator.userAgent)){
|
||||
document.addEventListener('mozfullscreenchange', docfullscreenchange);
|
||||
document.addEventListener('fullscreenchange', docfullscreenchange);
|
||||
} else {
|
||||
this.player.container.addEventListener('fullscreenchange', fullscreenchange);
|
||||
this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);
|
||||
document.addEventListener('msfullscreenchange', docfullscreenchange);
|
||||
document.addEventListener('MSFullscreenChange', docfullscreenchange);
|
||||
}
|
||||
}
|
||||
|
||||
isFullScreen (type = 'browser') {
|
||||
switch (type) {
|
||||
case 'browser':
|
||||
return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;
|
||||
return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
|
||||
case 'web':
|
||||
return this.player.container.classList.contains('dplayer-fulled');
|
||||
}
|
||||
|
|
@ -57,6 +75,12 @@ class FullScreen {
|
|||
else if (this.player.video.webkitEnterFullscreen) { // Safari for iOS
|
||||
this.player.video.webkitEnterFullscreen();
|
||||
}
|
||||
else if (this.player.video.webkitEnterFullScreen) {
|
||||
this.player.video.webkitEnterFullScreen();
|
||||
}
|
||||
else if (this.player.container.msRequestFullscreen) {
|
||||
this.player.container.msRequestFullscreen();
|
||||
}
|
||||
break;
|
||||
case 'web':
|
||||
this.player.container.classList.add('dplayer-fulled');
|
||||
|
|
@ -82,6 +106,15 @@ class FullScreen {
|
|||
else if (document.webkitCancelFullScreen) {
|
||||
document.webkitCancelFullScreen();
|
||||
}
|
||||
else if (document.webkitCancelFullscreen) {
|
||||
document.webkitCancelFullscreen();
|
||||
}
|
||||
else if (document.msCancelFullScreen) {
|
||||
document.msCancelFullScreen();
|
||||
}
|
||||
else if (document.msExitFullscreen){
|
||||
document.msExitFullscreen();
|
||||
}
|
||||
break;
|
||||
case 'web':
|
||||
this.player.container.classList.remove('dplayer-fulled');
|
||||
|
|
|
|||
Loading…
Reference in New Issue