guacamole谷歌瀏覽器全屏時白屏問題
阿新 • • 發佈:2019-02-15
最近專案需要使用web通過vnc連線虛擬機器,簡單調研一番後決定用apache guacamole。
開發過程中需要實現全屏功能,但F11被guacamole攔截了,無法全屏,唯有使用js來做,一開始用以下方法:
使用chrome測試發現全屏時候白屏了,firefox則沒有這個問題。function fullScreen() { var docElm = document.documentElement; //W3C if (docElm.requestFullscreen) { docElm.requestFullscreen(); } //FireFox else if (docElm.mozRequestFullScreen) { docElm.mozRequestFullScreen(); } //Chrome等 else if (docElm.webkitRequestFullScreen) { docElm.webkitRequestFullScreen(); } //IE11 else if (docElm.msRequestFullscreen) { docElm.msRequestFullscreen(); } }
後來使用chrome,先訪問左邊的頁面,按下F11,全屏了,然後Ctrl+PageDown切回到虛擬機器頁面,沒有白屏。
開始意識到應該是js問題,於是繼續在網上找解決方法,後來找到個帖子,https://stackoverflow.com/questions/3900701/onclick-go-full-screen,裡面有個外國人講得停詳細的,試了一下他的程式碼,問題解決了。
function requestFullScreen() { var el = document.body; // Supports most browsers and their versions. var requestMethod = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen; if (requestMethod) { // Native full screen. requestMethod.call(el); } else if (typeof window.ActiveXObject !== "undefined") { // Older IE. var wscript = new ActiveXObject("WScript.Shell"); if (wscript !== null) { wscript.SendKeys("{F11}"); } } }
問題原因不知道,自己不擅長js,希望能拋磚引玉,引出大神來指點迷津。