做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}");
}
这样就解决了无法全屏的问题