Как просмотреть стиль перед печатью? - PullRequest
2 голосов
/ 27 апреля 2011

Я пытаюсь показать предварительный просмотр страницы в стиле печати перед диалоговым окном печати, применяя таблицу стилей печати к таблице стилей экрана.

Это не работает:

$('link[media*="screen"]').attr("href",url+"css/print/default.css");
window.print();

Но с предупреждением () перед печатью () оно РАБОТАЕТ:

 $('link[media*="screen"]').attr("href",url+"css/print/default.css");
 alert("Ok?");
 window.print();

Есть какие-нибудь подсказки?

Ответы [ 3 ]

2 голосов
/ 27 апреля 2011

Эта функция задерживает выполнение window.print на несколько секунд (параметр delay, по умолчанию около 5 секунд):

function doPrint(delay){
 delay = delay || 5; //default to 5 seconds
 $('link[media*="screen"]').attr("href",url+"css/print/default.css");
 setTimeout(function(){window.print();},delay*1000);
}

Вы также можете восстановить исходное css после диалогового окна печати, поместив обратную сторону $('link[media*="screen"]').attr("href",url+"css/print/default.css"); в функцию, вызванную из setTimeout.

0 голосов
/ 27 апреля 2011

Требуется время, чтобы загрузить таблицу стилей.Без предупреждения вы звоните print до того, как пройдет достаточно времени для загрузки таблицы стилей.

Есть какие-нибудь подсказки?

Браузеры встроены в печать и печатьфункции предварительного просмотра.Избегайте повторного изобретения колес.

0 голосов
/ 27 апреля 2011

Не вызывайте window.print (), пока вы не захотите показать диалог печати.Добавьте еще одну кнопку на страницу, которую пользователь может нажать, чтобы открыть диалоговое окно печати (эта кнопка может быть скрыта по умолчанию, отображается при показе предварительного просмотра, но не забудьте снова скрыть ее при печати!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...