1. 程式人生 > >Javascript 開啟瀏覽器全屏模式

Javascript 開啟瀏覽器全屏模式

(點選上方公眾號,可快速關注)

作者:伯樂線上/前端空城師

通常在某些情況下,我們需要讓瀏覽器開啟全屏模式,以便獲得更好的視覺體驗,先看下全屏模式簡單的幾個API。

瀏覽器預設繫結

非全屏模式下, document的F11按鍵繫結開啟全屏模式
全屏模式下, document的esc和F11 按鍵繫結關閉全屏模式

螢幕全屏模式改變事件

當成功進入全屏模式後, document會收到一個fullscreenchange 事件。 當退出全屏狀態後, document又會收到fullscreenchange 事件。

varscreenChange = 'webkitfullscreenchange' || 'mozfullscreenchange'

 || 'fullscreenchange'

判斷當前是否處於全屏狀態

非標準:

varisFullScreen = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen;

標準:

varisFullScreen = document.fullscreenElement || document.mozFullScreenElement||document.webkitFullscreenElement

開啟全屏模式

functionlaunchFullScreen(element){

 if(element.requestFullscreen

){

   element.requestFullscreen();

 }elseif(element.mozRequestFullScreen){

   element.mozRequestFullScreen();

 }elseif(element.webkitRequestFullscreen){

   element.webkitRequestFullscreen();

 }elseif(element.msRequestFullscreen){

   element.msRequestFullscreen();

 }

}

注意: requestFullscreen是規範的書寫模式( s是小寫), 但在Gecko核心中仍使用帶字首的大寫模式mozRequestFullScreen。

關閉全屏模式

functionexitFullscreen(){

 if(document.exitFullscreen){

   document.exitFullscreen();

 }elseif(document.mozCancelFullScreen){

   document.mozCancelFullScreen();

 }elseif(document.webkitExitFullscreen){

   document.webkitExitFullscreen();

}

全屏模式只能由手勢觸發

瞭解API後,假如我們監聽window.onload事件執行launchFullScreen方法,Chrome瀏覽器會提示“開啟全屏模式API只能由使用者手勢觸發”。

"Failed to execute 'requestFullScreen' on 'Element': API can only be initiated by a user gesture."

原因是瀏覽器採用安全的機制, 將這種強制全屏模式意為“惡意行為”, 一切非使用者主觀意願帶來的變化都是不允許的

因此如果你的應用有全屏需求,有兩種方案。
1.頁面初始化給使用者一個“F11開啟全屏” 的提示, 並且在延遲幾秒之後消失。
2.頁面設定一個全屏按鈕,單擊全屏按鈕進入全屏模式,並且隱藏按鈕(視覺效果最佳)。

對於第二種方案,需要監聽鍵盤事件:

document.addEventListener("keydown",function(e){

varcurrKey = 0

//在FireFox或Opera中,隱藏的變數e是存在的,那麼e||event返回e,如果在IE中,隱藏變數e是不存在,則返回event。

vare = e || event;

//IE中,只有keyCode屬性,而FireFox中有which和charCode屬性,Opera中有keyCode和which屬性

varcurrKey = e.keyCode || 

相關推薦

Javascript 開啟瀏覽器模式

(點選上方公眾號,可快速關注)作者:伯樂線上/前端空城師通常在某些情況下,我們需要讓瀏覽器開啟全

[轉] JavaScript控制瀏覽器及各種瀏覽器模式的方法、屬性和事件

script ati 保持 num adding html5 美國 bre art [From] http://www.jb51.net/article/76695.htm HTML 5中的full screen,目前可以在除IE和opera外的瀏覽器中使用 ,有的時候

H5點擊按鈕,實現瀏覽器模式代碼

btn ie11 class 模式 瀏覽器 kit 點擊 全屏 document <button class="fullBtn">點擊實現全屏</button> $(‘.fullBtn‘).on(‘click‘, function() {

瀏覽器開啟就是的程式碼說明

現在還沒有發現通用的JS程式碼。 對於IE,可以通過下面的程式碼處理: 第一步: <script> window.onload=function(){                 var wscript = new ActiveXObject("WScrip

window.navigator.standalone 檢測iOS WebApp是否運行在模式

navi 屬性 如果 運行 運行時 one avi 顯示效果 navigator iOS上的Safari瀏覽器可以讓Web應用程序全屏顯示,以取得類似本地應用的顯示效果。但是這需要用戶把Web應用程序的圖標添加到主屏幕才可以。作為開發者,為了更好的顯示效果,我們可能希望自己

js控制瀏覽器

man trigge ros event object 屬性 pad 一次 運行 HTML 5中的full screen,目前可以在除IE和opera外的瀏覽器中使用 ,有的時候用來做全屏API,遊戲呀,等都很有用。先看常見的API element.requestFull

按ECS退出模式

activex script != == click quest typeof document java <!DOCTYPE html><html><meta http-equiv="Content-Type" content="text/h

Android 模式

activity重新如下方法即可:   @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus

JavaScript】在或指定區域範圍內尋找指定圖片的座標(找圖)

原型: seekImage(imageName)  seekImage(imageName, sim) seekImage(topLeftX, topLeftY, bottomRightX, bottomRightY, imageName) seekImage(topLeftX, to

網頁模式輕鬆掌握[區域性元素展示]

我第一次對網頁全屏模式有概念,是那種網頁播放視訊的全屏播 放的那種。感覺很強,前幾個星期有個需求也是關於全屏模式的,接觸之後才知道全屏模式並不神祕,是個很容易掌握的技能... 部落格、前端積累文件、公眾號、GitHub CodePen Demo 地址:演示、code 進去看看,玩一下,本文將

[轉]讓IE 以模式啟動

IE 的命令列引數有幾個很不錯的功能,之前提到《使IE8以隱私保護模式啟動》以及《如何讓IE 啟動的時候不載入任何外掛》 都是命令列引數應用。 這裡再介紹一個命令列引數 -k <網址>,使用該引數可以使直接以全屏模式啟動瀏覽<網址>。 示例:

Android模式處理

if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) { 2. // 透明狀態列 3. getWindow().addFlags( 4. WindowMan

iview-admin專案,echarts隨螢幕模式的變動而伸縮自適應

程式碼展示   import echarts from 'echarts' methods:{ chartsResize () { let procedureOpenEqpChart = echarts.getInstanceByDom(docum

VM VirtualBox 模式 && 自動縮放模式 相互切換

-s 快捷 box 主菜單 縮放 分享 inf 總結 宋體 【1】自動縮放模式 熱鍵Host + C 偶然一次機會,把虛擬機切換為了自動縮放模式,如下圖: 想要再切換為全屏模式,發現不知如何操作,後來折騰了一會兒,切換成功。以此備錄一下。 【2】切換為全屏模式 熱

自定義對話方塊模式(模擬Activity)

記錄一下開發中碰到的自定義對話方塊需要更改為Activity 樣式,全屏, 有輸入框被鍵盤遮擋的解決方式: 1.佈局檔案寫法: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr

JS實現HTML中frameset瀏覽器和退出

<script type="text/javascript"> /* 全屏 */ function fullScreen() { var el = document.documentElement

如何隱藏瀏覽器的選單欄、位址列,瀏覽器視窗瀏覽器

以chrome谷歌瀏覽器為例,有兩種方法,一種是命令列方式,一種是圖形化的方式: 一、用cmd進入谷歌瀏覽器安裝目錄,執行:Chrome.exe --app=http://www.baidu.com/。 二、如下圖所示,按1、2、3步驟操作: 然後會彈出如下視窗: 記得

Android中EditText被輸入法軟鍵盤遮擋的完美解決方案(非模式下)

1、不要給EditText的背景設定為@null 清單檔案中為activity設定屬性 程式碼中設定顯示輸入法 android:windowSoftInputMode=”stateVisible

用html5 js實現瀏覽器

專案中需要將後臺瀏覽器的視窗全屏,也就是我們點選一個按鈕要實現按F11全屏的效果。 在HTML5中,W3C制定了關於全屏的API,就可以實現全螢幕的效果,也可以讓頁面中的圖片,視訊等全屏目前只有google chrome 15 +, safri5.1+,firfox10+,IE11支援 全屏 1

PyQt5 應用在 TeamViewer 下無法使用模式

PyQt5 應用在 TeamViewer 下無法使用全屏模式 問題描述 使用 PyQt5 (版本為 5.7)中的 QtWebEngineView 構建的桌面應用,部署到遠端機器(Windows 7 平臺)上以全屏模式執行時,通過 teamviewer 觀察到遠端桌面沒有變化,但是滑鼠右鍵後會彈出選單選項,