Javascript 如何启用firefox和chrome等IE全屏功能

Javascript 如何启用firefox和chrome等IE全屏功能,javascript,jquery,fullscreen,Javascript,Jquery,Fullscreen,我看了以下文章和jquery插件 但是找不到 所有那些主要的文章都经过评审,但我找不到任何直接谈论IE全屏功能的文章, 有人找到了解决办法吗 我尝试了W3C的建议 // W3C Proposal element.requestFullscreen(); document.exitFullscreen(); 已更新 我的期望是,我有一个图像转盘,我需要显示当前选定的图像以全屏显示,似乎IE不支持,我计划使用jQuery模型窗口(没有jQuery UI)。正如IE中不支持全屏API中的

我看了以下文章和jquery插件

但是找不到

所有那些主要的文章都经过评审,但我找不到任何直接谈论IE全屏功能的文章, 有人找到了解决办法吗

我尝试了W3C的建议

// W3C Proposal
element.requestFullscreen();
document.exitFullscreen();
已更新 我的期望是,我有一个图像转盘,我需要显示当前选定的图像以全屏显示,似乎IE不支持,我计划使用jQuery模型窗口(没有jQuery UI)。正如IE中不支持全屏API中的。

一样,似乎也没有关于IE11是否支持该功能的信息

根据MDN的说法,这项技术似乎在大多数浏览器中仍处于实验阶段。

SO的这两篇文章将对您有所帮助

<script type="text/javascript">
    function max() {
        var wscript = new ActiveXObject("Wscript.shell");
        wscript.SendKeys("{F11}");
    }
</script>

函数max(){
var wscript=newActiveXObject(“wscript.shell”);
SendKeys(“{F11}”);
}

这将解决您的所有问题 expand是用于全屏显示的按钮的id

var fullScreenButton = document.getElementById("expand"); 
fullScreenButton.addEventListener("click", function () {
            if (mediaPlayer.requestFullscreen) {
                mediaPlayer.requestFullscreen();
            } else if (mediaPlayer.mozRequestFullScreen) {
                mediaPlayer.mozRequestFullScreen(); // Firefox
            } else if (mediaPlayer.webkitRequestFullscreen) {
                mediaPlayer.webkitRequestFullscreen(); // Chrome and Safari
            }
            else if (mediaPlayer.msRequestFullscreen) {
                mediaPlayer.msRequestFullscreen(); // IE
            }
        });

p、 will link将对您大有帮助

在IE10及以下版本中,通过脚本切换全屏是不可能的,除非您不调整其安全设置,如下面所示-

Tools->Internet Options->Security tab->click Custom Level button ->
find "Initialize and script ActiveX control not marked as safe." option -> change it to Enable

sheelpriy的答案很好,只是做了一点小改动,在chrome、firefox、ie、safari和opera(都是最新版本)上成功测试

//HTML按钮:
//获取元素id“全屏”
var fullScreenButton=document.getElementById(“全屏”);
//激活单击侦听器
fullScreenButton.addEventListener(“单击”),函数(){
//关闭全屏,激活它
如果(!document.fullscreenElement&&!document.mozFullScreenElement&&!document.webkitFullscreenElement&&!document.msFullscreenElement){
if(document.documentElement.requestFullscreen){
document.documentElement.requestFullscreen();
}else if(document.documentElement.mozRequestFullScreen){
document.documentElement.mozRequestFullScreen();//Firefox
}else if(document.documentElement.webkitRequestFullscreen){
document.documentElement.webkitRequestFullscreen();//Chrome和Safari
}else if(document.documentElement.msRequestFullscreen){
document.documentElement.msRequestFullscreen();//IE
}
//打开全屏,退出全屏
}否则{
if(document.exitFullscreen){
document.exitFullscreen();
}else if(document.msexit全屏){
document.msExitFullscreen();
}else if(document.mozCancelFullScreen){
document.mozCancelFullScreen();
}else if(document.webkitExitFullscreen){
document.webkitExitFullscreen();
}
}
});
享受吧

取材于(并进行了修改,因为它们有丑陋的编码实践,当你缩小尺寸时会让你抓狂)


vidWha是我的视频元素的id

全屏是我的全屏按钮的id

此代码适用于所有浏览器。已测试

var video = document.getElementById('vidWha');
var fullScreenButton = document.getElementById('full-screen');

// Event listener for the full-screen button
fullScreenButton.addEventListener("click", function() {
if (video.requestFullscreen) {
    video.requestFullscreen();
}else if (video.mozRequestFullScreen) {
    video.mozRequestFullScreen(); // Firefox
}else if (video.webkitRequestFullscreen) {
    video.webkitRequestFullscreen(); // Chrome and Safari
}else if (video.msRequestFullscreen) {
    video.msRequestFullscreen(); // IE
}
});

这里是Opera和Chrome的一个真正的功能示例,因为它们有相同的API。IE和Safari不支持它

addEventListener
在已经有事件的对象上是无用的,这就是为什么它被称为
Object.addEventListener

对于DIV对象,
mediv.onmouseX=function(){code…}
就足够了;无需使用
mediv.addEventListener
,因为
div
对象已具有鼠标事件

有关全屏显示,请检查此示例:

function mefull(iffull){
var isfullscreenelement = typeof(document.fullscreenElement)=='object';

if(!isfullscreenelement || isfullscreenelement=="undefined"){
    alert('Message !');
    return;
}

if(iffull){
document.documentElement.requestFullscreen();

//your code here......

}else{
if (document.exitFullscreen) {
document.exitFullscreen();

//Yourcode here......

}
}
}

我回顾了我上面所说的(0_0)

经过大量的研究和测试,这是一个在IE、EDGE、CHROME、FIREFOX和OPERA上运行良好的脚本。它在SAFARI版本5.1上不起作用。我希望这能帮助你。。。 要测试它,请创建一个html按钮并调用该函数

设置满:

 setfullscreen(true);
全方位支援:

 setfullscreen(false);
***此脚本不需要addEventListner

var ensuredoc = null;  //reg your actual document is JS
function setfullscreen(isetting){

var domfull = (typeof(document.fullscreenElement)=='object')?1: 
(typeof(document.msFullscreenElement)=='object')?2: 
(typeof(document.mozFullScreenElement)=='object')?3: 
(typeof(document.webkitFullscreenElement)=='object')?4:0;

if(isetting){

if(domfull >0){ ensuredoc =document; }

var docE=document.documentElement;

                    if(domfull ==1){
                    docE.requestFullscreen();   
                    }else if(domfull ==2){
                    docE.msRequestFullscreen();
                    }else if(domfull ==3){
                    docE.mozRequestFullScreen();
                    }else if(domfull ==4){
                    docE.webkitRequestFullscreen();                     
                    }
 }else{
                    if(domfull==1){
                        if((typeof 
 ensuredoc.exitFullscreen)=='function') 
 {ensuredoc.exitFullscreen();
                        }else if((typeof 
 ensuredoc.cancelFullScreen)=='function') 
 {ensuredoc.cancelFullScreen();};   
                    }else if(domfull==2){
                    ensuredoc.msExitFullscreen();
                    }else if(domfull==3){
                    ensuredoc.mozCancelFullScreen();
                    }else if(domfull==4){
                    ensuredoc.webkitCancelFullScreen();
                    }
  }

  }
如果要检测DIV对象的键盘使用情况,只需添加一个简单的代码

var mediv = document.getElementById('mediv');
mediv.onkeyup = function(){ if(condition) {setfullscreen(false);}}

**我忘了告诉你EDGE使用WEBKIT。Chrome使用DOM激活屏幕,但“exitFullscreen”退出

当浏览器更改为全屏,并且用户按下ESCAPE键时,它不会返回按键事件

解决方案是使用计时器来检测DIV或其他对象上是否发生了更改

我们在一个变量中存储一个按钮的真值或假值,该按钮将变为全屏

var fullScreenButton = document.getElementById("expand"); 
fullScreenButton.addEventListener("click", function () {
            if (mediaPlayer.requestFullscreen) {
                mediaPlayer.requestFullscreen();
            } else if (mediaPlayer.mozRequestFullScreen) {
                mediaPlayer.mozRequestFullScreen(); // Firefox
            } else if (mediaPlayer.webkitRequestFullscreen) {
                mediaPlayer.webkitRequestFullscreen(); // Chrome and Safari
            }
            else if (mediaPlayer.msRequestFullscreen) {
                mediaPlayer.msRequestFullscreen(); // IE
            }
        });
我们启动计时器,只有当大小改变时才运行代码。例如

 var buttonclick = false;
 var MeInterval = null;

 function timerscreen(){
      if(buttonclicked){
           if(objectdiv.offsetHeight < screen.availHeight){
                 your code here.....

           //end timer
           clearInterval(MeInterval);
           }
      }
 }

 objectdiv.onmouseup(){
      buttonclicked = !buttonclicked;
      if(buttonclicked) MeInterval= setInterval(timerscreen, 1000);
 }
var按钮单击=false;
var MeInterval=null;
函数timersscreen(){
如果(按钮勾选){
if(objectdiv.offsetHeight
实际上,IE11列是灰色的,这表明目前还没有可用的信息。所以我怀疑它对那个版本的支持是肯定的。@smamati很好,我的笔记本电脑上的颜色太差了,当我快速看它时,它看起来是绿色的。谢谢你纠正我,我已经更新了我的答案@是的,我查看了这篇文章,似乎运气不好,让我们试试:)谢谢。IE11支持全屏API。目前使用ms前缀,但在最终发布之前可能会发生变化。资料来源:SO的这两篇文章将对您有所帮助。
 var buttonclick = false;
 var MeInterval = null;

 function timerscreen(){
      if(buttonclicked){
           if(objectdiv.offsetHeight < screen.availHeight){
                 your code here.....

           //end timer
           clearInterval(MeInterval);
           }
      }
 }

 objectdiv.onmouseup(){
      buttonclicked = !buttonclicked;
      if(buttonclicked) MeInterval= setInterval(timerscreen, 1000);
 }