1. 概述
1.1 問題描述
在瀏覽器上大家都習慣於 F11 讓報表達到全螢幕效果,但是對於有些僅用於展示的電腦而言,有時候是不配備鍵盤,稍做調整只能用滑鼠來實現。
效果如下圖所示,滑鼠點選決策報表主體,報表全螢幕顯示;再點選,恢復為原來的樣子。適用於某些不配備鍵盤,企業戰情室講解的場景。
注:此處以決策報表為例,在普通報表中,透過點選按鈕實現全螢幕的方法可參考:JS 實現點選按鈕實現全螢幕預覽
1.2 解決思路
利用 JS 來控制點選報表來實現全螢幕效果。
2. 範例
2.1 準備範本
準備內建範本: %FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\analytics\sales\簽約額詳細分析.frm
點選可下載範本:簽約額詳細分析.frm
2.2 新增事件
開啟範本,選中 body,新增一個「點選」事件,如下圖所示:
JavaScript 程式碼如下:
var docElm = document.documentElement;
var explorer = window.navigator.userAgent.toLowerCase();
if(explorer.indexOf('chrome') > 0) { //webkit
if(document.body.scrollHeight === window.screen.height && document.body.scrollWidth === window.screen.width) {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.msExitFullscreen) {
document.msExitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
} else {
//W3C
if(docElm.requestFullscreen) {
docElm.requestFullscreen();
}
//FireFox瀏覽器
else if(docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
}
//Chrome等瀏覽器
else if(docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}
}
} else { //fireFox瀏覽器
if(window.outerHeight === window.screen.height && window.outerWidth === window.screen.width) {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.msExitFullscreen) {
document.msExitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
} else {
//W3C
if(docElm.requestFullscreen) {
docElm.requestFullscreen();
}
//FireFox瀏覽器
else if(docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
}
//Chrome等瀏覽器
else if(docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}
}
}
注:上述程式碼僅適配於谷歌、火狐、360(極速模式)瀏覽器。
2.3 效果預覽
儲存範本,點選 「PC端預覽」,PC 端效果如下圖所示:
注:不支援行動端。
3. 範本下載
已完成的範本,可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表單JS實體\04-JS實現點選報表實現全螢幕效果.frm
點選下載範本:04-JS實現點選報表實現全螢幕效果.frm