我正在一个用户可以打印测验或抽认卡的网站上工作。打印功能在除Safari之外的所有浏览器(IE9,Firefox,Chrome)上都能正常运行。在Safari上,当用户打印任何测验时,会打印出额外的空白页面。我发现计算像素点比的逻辑正在产生一个问题。这是我的代码示例。
function getHeight(elem) {
var elem_height = 0;
if (typeof elem.innerHeight != 'undefined') {
elem_height = elem.innerHeight;
} else {
elem_height = elem.clientHeight;
}
return parseInt(elem_height);
}
var dpiBoxHeight = getHeight(document.getElementById('dpiBox'));
if (dpiBoxHeight < 1) dpiBoxHeight = 96;
var pixelPointRatio = 72 / dpiBoxHeight;
'dpiBox'是一个空div,在CSS中我们将deafult height定义为1英寸。
值72表示每英寸的点数。在safari中,我得到'dpiBoxHeight'为96.
如果我更改,则每英寸点的值大于85或者将'dpiBoxHeight'更改为小于85.不打印任何空白页。但是,这会增加整个打印页面的数量。
请建议您是否有解决方案/解决方法可用于防止在Safari上打印空白页并且在所有浏览器上兼容
提前致谢, NEHA