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