JS 全屏和退出全屏詳解及實(shí)例代碼
JS 全屏和退出全屏
js實(shí)現(xiàn)瀏覽器窗口全屏和退出全屏的功能,市面上主流瀏覽器如:谷歌、火狐、360等都是兼容的,不過IE低版本有點(diǎn)瑕疵(全屏狀態(tài)下仍有底部的狀態(tài)欄)。
這個(gè)demo基本是夠了,直接復(fù)制下面的源碼另存為html文件看效果吧。
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js全屏和退出全屏代碼</title>
<body>
<!-- requestFullScreen(document.documentElement): 整個(gè)網(wǎng)頁進(jìn)入全屏
requestFullScreen(document.getElementById("video-box")): 指定某塊區(qū)域全屏
-->
<button onclick="requestFullScreen(document.documentElement)">全屏顯示</button>
<button onclick="exitFull()">退出全屏</button>
</body>
<script type="text/javascript">
function requestFullScreen(element) {
// 判斷各種瀏覽器,找到正確的方法
var requestMethod = element.requestFullScreen || //W3C
element.webkitRequestFullScreen || //Chrome等
element.mozRequestFullScreen || //FireFox
element.msRequestFullScreen; //IE11
if (requestMethod) {
requestMethod.call(element);
}
else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorer
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null) {
wscript.SendKeys("{F11}");
}
}
}
//退出全屏 判斷瀏覽器種類
function exitFull() {
// 判斷各種瀏覽器,找到正確的方法
var exitMethod = document.exitFullscreen || //W3C
document.mozCancelFullScreen || //Chrome等
document.webkitExitFullscreen || //FireFox
document.webkitExitFullscreen; //IE11
if (exitMethod) {
exitMethod.call(document);
}
else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorer
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null) {
wscript.SendKeys("{F11}");
}
}
}
</script>
</html>
感謝閱讀,希望嫩幫助到大家,謝謝大家對(duì)本站的支持!
以下是其它網(wǎng)友的補(bǔ)充
我們知道,瀏覽器全屏通常按快捷鍵F11。JS控制瀏覽器全屏也不稀奇,它讓W(xué)eb應(yīng)用看上去更像似原生軟件應(yīng)用效果。比如點(diǎn)餐系統(tǒng)、叫號(hào)系統(tǒng)等等。
JS讓瀏覽器全屏及退出全屏的方法網(wǎng)上很多,這不是重點(diǎn),重點(diǎn)是需注意:瀏覽器全屏只能通過鼠標(biāo)手勢(shì)點(diǎn)擊事件去觸發(fā)。
JS全屏方法
var $fullScreen = document.getElementById("js-fullScreen");//按鈕
if ($fullScreen) {
$fullScreen.addEventListener("click", function () {
var docElm = document.documentElement;
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
}
else if (docElm.msRequestFullscreen) {
docElm.msRequestFullscreen();
}
else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
}
else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}
}, false);
}
JS退出全屏方法
var $cancelFullScreen = document.getElementById("js-cancelFullScreen");
if ($cancelFullScreen) {
$cancelFullScreen.addEventListener("click", function () {
if (document.exitFullscreen) {
document.exitFullscreen();
}
else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}, false);
}
控制臺(tái)警告
Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.
釋義:在"Element"上執(zhí)行"requestFullscreen"方法失敗,javascript API僅允許通過手勢(shì)去創(chuàng)建!(即沒有權(quán)限)
通常是由于程序員想觸發(fā)瀏覽器自動(dòng)全屏顯示而導(dǎo)致。但是很抱歉,此方法行不通,必須通過手勢(shì)去創(chuàng)建,哪怕onload、trigger()、mouseover也觸發(fā)不了!
官方解釋
該Element.requestFullscreen()方法發(fā)出異步請(qǐng)求,使元素全屏顯示。但不能保證元素將被放入全屏模式。
如果允許進(jìn)入全屏模式,文檔將收到一個(gè)fullscreenchange事件,讓它知道它現(xiàn)在處于全屏模式。如果權(quán)限被拒絕,則文檔會(huì)接收到一個(gè)fullscreenerror事件。
結(jié)論
可能出于用戶操作體驗(yàn)的考慮吧,客戶端javascript讓瀏覽器全屏只能通過鼠標(biāo)手勢(shì)點(diǎn)擊事件去觸發(fā),即click()。
相關(guān)文章
JS簡(jiǎn)單實(shí)現(xiàn)元素復(fù)制示例附圖
實(shí)現(xiàn)元素復(fù)制的方法有很多,在本文將為大家介紹下使用js是如何實(shí)現(xiàn)的,下面有個(gè)不錯(cuò)的示例,希望大家可以嘗試操作下2013-11-11
JavaScript中用sort()方法對(duì)數(shù)組元素進(jìn)行排序的操作
這篇文章主要介紹了JavaScript中用sort()方法對(duì)數(shù)組元素進(jìn)行排序的操作,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
javascript 構(gòu)造函數(shù)方式定義對(duì)象
這篇文章主要介紹了javascript 構(gòu)造函數(shù)方式定義對(duì)象的方法及示例,需要的朋友可以參考下2015-01-01
JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點(diǎn)
這篇文章介紹了JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點(diǎn),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
javascript setinterval 的正確語法如何書寫
setinterval是用來干什么,想必大家都知道了,下面為大家介紹下javascript setinterval 正確的語法,高手勿噴2014-06-06
讓ie運(yùn)行js時(shí)提示允許阻止內(nèi)容運(yùn)行的解決方法
這個(gè)問題一般是因?yàn)榫W(wǎng)頁中使用了一些js代碼,而ie的默認(rèn)安全級(jí)別過高導(dǎo)致運(yùn)行js時(shí)需要經(jīng)過準(zhǔn)許才可以。下面是IE的設(shè)置方法。2010-10-10
Javascript學(xué)習(xí)筆記之 對(duì)象篇(三) : hasOwnProperty
判斷一個(gè)屬性是定義在對(duì)象本身而不是繼承自原型鏈,我們需要使用從 Object.prototype 繼承而來的 hasOwnProperty 方法。 hasOwnProperty 方法是 Javascript 中唯一一個(gè)處理對(duì)象屬性而不會(huì)往上遍歷原型鏈的。2014-06-06

