题目:页面中运用iframe嵌入PDF.js的viewer.html时,部份浏览器全屏功用毛病;
题目概况:题目涌现的浏览器主要有:edge(win10自带),火狐(按钮被屏障);
解决计划:
1.不运用iframe,新标签页翻开;- 摒弃:页面体验不好;
2.不运用iframe,运用模板规划,嵌套页面;- 摒弃:模板与PDF.js款式争执较多,适配后高耦合,不天真;
3.继承运用iframe,坚持原平台作风,重写PDF.js的全屏按钮操纵;- 终究计划:快速有用,低耦合;
全屏代码:
<a href="#" onClick="fullscreenAction()">button</a>
<p id="state" style="display:none;">no</p>
//行动
function fullscreenAction() {
var state = document.getElementById('state').innerText;
if (state == 'no') {
fullscreen();
} else {
exitFullscreen();
}
}
//全屏
function fullscreen() {
var docElm = document.documentElement;
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
} else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
} else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
} else if (docElm.msRequestFullscreen) {
docElm.msRequestFullscreen();
}
}
// 退出全屏
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
// 监听是不是全屏
window.onload = function() {
var elem = document.getElementById('state');
document.addEventListener('fullscreenchange',
function() {
elem.innerText = document.fullscreen ? 'yes': 'no';
},
false);
document.addEventListener('mozfullscreenchange',
function() {
elem.innerText = document.mozFullScreen ? 'yes': 'no';
},
false);
document.addEventListener('webkitfullscreenchange',
function() {
elem.innerText = document.webkitIsFullScreen ? 'yes': 'no';
},
false);
document.addEventListener('msfullscreenchange',
function() {
elem.innerText = document.msFullscreenElement ? 'yes': 'no';
},
false);
}