首页 > 网站 > WEB开发 > 正文

使用javascript实现浏览器全屏

2024-04-27 14:16:17
字体:
来源:转载
供稿:网友

使用javascript实现浏览器全屏

HTML 5中的full screen,目前可以在除IE和Opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用。先看常见的API1 element.requestFullScreen() 作用:请求某个元素element全屏2Document.getElementById(“myCanvas”).requestFullScreen() 这里是将其中的元素ID去请求fullscreen3退出全屏 document.cancelFullScreen()4Document.fullScreen 如果用户在全屏模式下,则返回true5 document.fullScreenElement 返回当前处于全屏模式下的元素 下面的代码是开启全屏模式:

Java代码收藏代码
  1. functionfullScreen(element){
  2. if(element.requestFullScreen){
  3. element.requestFullScreen();
  4. }elseif(element.webkitRequestFullScreen){
  5. element.webkitRequestFullScreen();
  6. }elseif(element.mozRequestFullScreen){
  7. element.mozRequestFullScreen();
  8. }
  9. }

下面的代码就是整个页面调用全屏模式 var html = document.documentElement;fullScreen(html); 下面的则是对指定元素,比如 var canvas = document.getElementById('mycanvas');fullScreen(canvas); 如果要取消,同样:

Java代码收藏代码
  1. //thehelperfunction
  2. functionfullScreenCancel(){
  3. if(document.requestFullScreen){
  4. document.requestFullScreen();
  5. }elseif(document.webkitRequestFullScreen){
  6. document.webkitRequestFullScreen();
  7. }elseif(document.mozRequestFullScreen){
  8. document.mozRequestFullScreen();
  9. }
  10. }
  11. fullScreenCancel();

不过老实说,FULL SCREEN有个问题,容易造成欺骗,比如在http://feross.org/html5-fullscreen-api-attack/中,其中就有一个很好的DEMO,去欺骗了,比如某个链结写的是http://www.bankofamerica.com,大家以为是美国银行,一点进去,因为使用了全屏幕API,就会欺骗到人

Java代码收藏代码
  1. $('html').on('clickkeyPRess','a',function(event){
  2. //不响应真正的AHREF点击事件
  3. event.preventDefault();
  4. event.stopPropagation();
  5. //Triggerfullscreen
  6. if(elementPrototype.requestFullscreen){
  7. document.documentElement.requestFullscreen();
  8. }elseif(elementPrototype.webkitRequestFullScreen){
  9. document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
  10. }elseif(elementPrototype.mozRequestFullScreen){
  11. document.documentElement.mozRequestFullScreen();
  12. }else{
  13. //
  14. }
  15. //显示假的UI
  16. $('#menu,#browser').show();
  17. $('#target-site').show();
  18. });

详细代码在https://github.com/feross/fullscreen-api-attack可以下载老外也提到了: Browser vendors are well aware of the potential security issues with fullscreen. For example, a malicious site could show a full screen Windows or Mac login window and steal a passWord. That’s why they are disabling keyboard support by default and only enabling by explicitly asking. — John Dyer


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表