javascript全屏以及IE下无效的坑

原创
2017/09/17 07:43
阅读数 760

做javascript全屏,在ie浏览器中做,把别人的代码拿过来,结果无效。

原始代码如下:

function fullScreen() {
 
  var el = document.documentElement;
 
  var rfs = el.requestFullScreen || el.webkitRequestFullScreen || 
 
      el.mozRequestFullScreen || el.msRequestFullScreen;
 
  if(typeof rfs != "undefined" && rfs) {
 
    rfs.call(el);
 
  } else if(typeof window.ActiveXObject != "undefined") {
 
    //for IE,这里其实就是模拟了按下键盘的F11,使浏览器全屏
 
    var wscript = new ActiveXObject("WScript.Shell");
 
    if(wscript != null) {
 
        wscript.SendKeys("{F11}");
 
    }
 
  }
}

结果你会发现,在ie浏览器中,反倒是没有任何反应。 

经过查资料,以及亲身实践(ie11),发现一个Bug,也就是ie的坑,window.ActiveXObject 是一个本地方法,但通过typeof  window.ActiveXObject 会得到一个undefined  同样的wscript对象,也是null

基于这些问题,将代码修改如下(我这里只需要在ie内正常运行)

function maxScreen() {
	   
		
	   var el = document.documentElement; 
	   
	   var rfs = el.requestFullScreen || el.webkitRequestFullScreen || 

	       el.mozRequestFullScreen || el.msRequestFullScreen;
	   
	   if(typeof rfs != "undefined"&&rfs) {
	  
		     rfs.call(el);
		     return;
		  
	   }   
	     var wscript = new ActiveXObject("WScript.Shell");
	     wscript.SendKeys("{F11}");
	    
	 }

这样就解决了无法全屏的问题

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部