JS 全屏和退出全屏詳解及實(shí)例代碼
JS 全屏和退出全屏
js實(shí)現(xiàn)瀏覽器窗口全屏和退出全屏的功能,市面上主流瀏覽器如:谷歌、火狐、360等都是兼容的,不過(guò)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)頁(yè)進(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)是需注意:瀏覽器全屏只能通過(guò)鼠標(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僅允許通過(guò)手勢(shì)去創(chuàng)建?。礇](méi)有權(quán)限)
通常是由于程序員想觸發(fā)瀏覽器自動(dòng)全屏顯示而導(dǎo)致。但是很抱歉,此方法行不通,必須通過(guò)手勢(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讓瀏覽器全屏只能通過(guò)鼠標(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-11JavaScript中用sort()方法對(duì)數(shù)組元素進(jìn)行排序的操作
這篇文章主要介紹了JavaScript中用sort()方法對(duì)數(shù)組元素進(jìn)行排序的操作,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06javascript 構(gòu)造函數(shù)方式定義對(duì)象
這篇文章主要介紹了javascript 構(gòu)造函數(shù)方式定義對(duì)象的方法及示例,需要的朋友可以參考下2015-01-01JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點(diǎn)
這篇文章介紹了JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06javascript setinterval 的正確語(yǔ)法如何書(shū)寫(xiě)
setinterval是用來(lái)干什么,想必大家都知道了,下面為大家介紹下javascript setinterval 正確的語(yǔ)法,高手勿噴2014-06-06讓ie運(yùn)行js時(shí)提示允許阻止內(nèi)容運(yùn)行的解決方法
這個(gè)問(wèn)題一般是因?yàn)榫W(wǎng)頁(yè)中使用了一些js代碼,而ie的默認(rèn)安全級(jí)別過(guò)高導(dǎo)致運(yùn)行js時(shí)需要經(jīng)過(guò)準(zhǔn)許才可以。下面是IE的設(shè)置方法。2010-10-10Javascript學(xué)習(xí)筆記之 對(duì)象篇(三) : hasOwnProperty
判斷一個(gè)屬性是定義在對(duì)象本身而不是繼承自原型鏈,我們需要使用從 Object.prototype 繼承而來(lái)的 hasOwnProperty 方法。 hasOwnProperty 方法是 Javascript 中唯一一個(gè)處理對(duì)象屬性而不會(huì)往上遍歷原型鏈的。2014-06-06