Safari печатает дополнительные страницы - PullRequest
2 голосов
/ 20 марта 2012

Я работаю на сайте, где пользователь может распечатать викторину или карточку.Функциональность печати работает нормально во всех браузерах (IE9, Firefox, Chrome), кроме Safari.В 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 мы определили высоту по умолчанию как 1 дюйм.

Значение 72 представляет точки на дюйм.В сафари я получаю dpiBoxHeight как 96.

Если я изменяю, значение в точках на дюйм выше 85 ИЛИ изменяю dpiBoxHeight меньше 85. Пустые страницы не печатаются.Но это увеличивает общее количество напечатанных страниц.

Пожалуйста, предложите, если у вас есть решение / обходной путь, который можно использовать для предотвращения печати пустых страниц в Safari и совместим во всех браузерах

Заранее спасибо, Неха

...