2013-04-15 4 views
0

У меня есть функция печати javascript, которая использует jqprint (хотя я внес некоторые незначительные корректировки кода).Почему IE9 ничего не печатает?

Эта функция печати работает на IE8 и Chrome без проблем. Однако в IE9 он не показывает ошибок JS, и диалог печати браузера отображается так, как ожидалось, но как только я нажимаю печать, ничего не происходит. В конце концов все приложения на моем компьютере начинают отставать, и мне приходится перезагружаться.

Если я открываю набор инструментов разработчика (F12) и устанавливаю режим документа в соответствии со стандартами IE8, он отлично отпечатывается в IE9.

Что происходит? Я честно озадачен ...

Edit:

Мой компьютер не подключен к принтеру, так что я с помощью встроенного в «Microsoft XPS Document Writer» для тестирования. Я протестировал код на реальном принтере в IE8 и Chrome, хотя он работает.

Update:

Это перестал работать сегодня по какой-то причине, кто-нибудь есть какие-нибудь идеи?

+0

показать, что у пытался –

+0

у вас 'console.log' где-нибудь? если это так, просто заключите его в 'if (console.log) {...}' – karthikr

+1

Что произойдет, если вы откроете консоль и оставьте ее на стандартах IE9 и нажмите «Печать»? –

ответ

0

Я понятия не имею, почему, но я получил его на работу.

Когда он вызывал функцию печати, он вызывал ее на объект jquery, который он только что создал (iframe). Я изменил код jqprint, чтобы он каждый раз захватывал объект.

Оригинальный код jqprint:

$iframe[0].contentWindow.document.close(); 
.... 

Модифицированный код jqprint:

$('iframe')[0].contentWindow.document.close(); 
$('iframe')[0].contentWindow.focus(); 
$('iframe')[0].contentWindow.print(); 
$('iframe')[0].contentWindow.close(); 
Смежные вопросы