2016-04-14 3 views
1

Я использую следующую функцию, чтобы вызвать событие, если пользователь выходит в полноэкранном режиме на время альбомной ориентации:Как включить прослушиватель событий в конкретный поставщик?

document.addEventListener('webkitfullscreenchange',() => { 
    if (util.isLandscape()) { 
    console.log('EXITED') 
    } 
}, false) 

Я хотел бы добавить mozfullscreenchange и MS, и т.д ...

Как построить функция для достижения этого?

+0

ли это помогает? [Как определить, когда страница выходит из полноэкранного режима?] (Http://stackoverflow.com/questions/10706070/how-to-detect-when-a-page-exits-fullscreen) – Hammer

ответ

1

Просто (и наивный) подход может быть:

document.addEventListener('mozfullscreenchange', fullScreenFunction, false) 
document.addEventListener('webkitfullscreenchange',fullScreenFunction, false) 
document.addEventListener('msfullscreenchange', fullScreenFunction, false) 
//etc 
function fullScreenFunction() 
{ 
if (util.isLandscape()) { 
     console.log('EXITED') 
     }  
} 

или вы могли бы попробовать тестирование, которое префикс существует и только Дескриптор привязки одно событие, к которому один существует.

Грубая идея будет что-то вроде:

var prefixes = ['webkit', 'moz', 'ms', 'o']; 
var prefixToUse = ''; 
for (var i = 0; i < prefixes.length; i++) { 
//This checks against the document object for that event. 
//It will start with on eg onmsfullscreenchange or onwebkitfullscreenchange 
    if('on' + prefixes[i] + 'fullscreenchange' in document) { 
     prefixToUse = prefixes[i]; 
     break; 
    } 
} 
document.addEventListener(prefixToUse + 'fullscreenchange', fullScreenFunction, false); 

function fullScreenFunction() 
{ 
    if (util.isLandscape()) { 
     console.log('EXITED') 
    } 
}