2013-07-09 54 views
1

我在尝试将全屏功能添加到我的应用中的某个元素时出现问题。HTML javascript fullscreen

我基本上做这样的事情:

var launchFullScreen = function (element) { 
    if(element.requestFullScreen) { 
     element.requestFullScreen(); 
    } 
    else if(element.mozRequestFullScreen) { 
     element.mozRequestFullScreen(); 
    } 
    else if(element.webkitRequestFullScreen) { 
     element.webkitRequestFullScreen(); 
    } 
}; 

var cancelFullscreen = function() { 

    if(document.cancelFullScreen) { 
     document.cancelFullScreen(); 
    } 
    else if(document.mozCancelFullScreen) { 
     document.mozCancelFullScreen(); 
    } 
    else if(document.webkitCancelFullScreen) { 
     document.webkitCancelFullScreen(); 
    } 

}; 

$("#view").on("keypress", function(event){ 
    if(event.which == 27){ 
     cancelFullscreen(); 
    } 
}); 

$("#view").on("click", function(event){ 
    console.log("view clicked"); 
    launchFullScreen($("#view")); 
}); 

我不明白我在做什么错。有什么建议么?

+0

退房这个库https://github.com/sindresorhus/screenfull.js/ –

回答

1

我相信你是全屏调用jQuery包裹的元素,而不是元素本身。试试这个:

launchFullScreen($("#slideView").get(0)); 
+0

感谢您的渔获杰里米·浩 – swaggyP

0

这里有一个解决方案:

var 
view = document.querySelector("#view"), 
launchFullscreen = function(element){ 
    var domPrefixes = 'webkit moz o ms khtml'.split(' '), i = 0, prefix = null; 
    while(!(prefix = previewFrame[domPrefixes[i] + 'RequestFullScreen'])){ i++; } 
    prefix.apply(element); 
}, 
cancelFullscreen = function(){ 
    var domPrefixes = 'webkit moz o ms khtml'.split(' '), i = 0, prefix = null; 
    while(!(prefix = previewFrame[domPrefixes[i] + 'CancelFullScreen'])){ i++; } 
    prefix.apply(document); 
}; 

view.addEventListener('click', function(){ 
    launchFullscreen(this); 
}); 

view.addEventListener("keypress", function(event){ 
    if(event.which == 27){ cancelFullscreen(); } 
});