Проблема печати из JS @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 8 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Заголовок сообщения: Проблема печати из JS
Сообщение Добавлено: 14 Февраль 2008, 09:33:52 
Ситуация следующая. С помощью JS и ajax-библиотеки sajax динамически формирую контент и вставляю его в динамически создаваемое окно:

Код:
      to_print = open("", "displayWindow", "width=780,height=800,status=yes,scrollbars=yes,toolbar=yes,menubar=no");

      var content = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//RU" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'

      + '<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />'
      + '<title>Газпром Добыча Ноябрьск - WEB-планерка</title>'
      + '<link href="/styles/print.css" rel="stylesheet" type="text/css" />'
      + '</head><body>'
      + plan
      + '</body></html>';

      to_print.document.open();
      to_print.document.write(content);
      to_print.window.location.reload();


В переменной plan, получаемой из ajax - собственно контент.

to_print.window.location.reload() добавил после того, как обнаружил, что без этого контект в окно не попадает. Заработало. Теперь в создаваемом окне все в порядке.

Но обнаружилась проблема - при отправке окна на печать (через toolbar - иконку принтера, или из контекстного меню) иногда печатается нормально, иногда - пустая страница, иногда - только часть текста. Из-за периодичности возниковения проблем трудно отследить ситуацию, когда именно они возникают. Иногда помогает (вроде бы) принудительное F5.

Запрос ajax - синхронный.

Кто что думает по этому поводу?

_________________
Лишь одно в моём кармане - беспонтовый пирожок
vashurin
новый человек
9
Сообщения: 129
Зарегистрирован: 21.06.06
Откуда: Самара
Сообщение Добавлено: 14 Февраль 2008, 13:16:09 
А:
Код:
to_print.window.close();

прописан?..

_________________
С уважение, Вашурин Владимир.
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Сообщение Добавлено: 15 Февраль 2008, 08:29:03 
vashurin, это шутка юмора?

_________________
Лишь одно в моём кармане - беспонтовый пирожок
vashurin
новый человек
9
Сообщения: 129
Зарегистрирован: 21.06.06
Откуда: Самара
Сообщение Добавлено: 15 Февраль 2008, 12:53:56 

Konyukhov писал(а):
vashurin, это шутка юмора?


Вполне серьезно. Наверняка не в аяксе дело, если все данные пришли.
Показать полностью работу данного скрипта можете?

_________________
С уважение, Вашурин Владимир.
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Сообщение Добавлено: 15 Февраль 2008, 15:12:28 
vashurin, пока окно открыто (в котором все отображается корректно, из этого же окна и отправляю на печать или из тулбара, или правой кнопкой на документе - "печать"), оно открыто. Если сделать ему из скрипта то, что Вы сказали, оно тупо закроется.

Полностью ИМХО нет смысла - ну вернул ajax переменную plan, в ней точно все в порядке, в окне-то все отображается правильно. Т.е. парадокс... в окне все есть, отправляешь окно на печать - то есть, то нет... :confused:

Единственная мысль бродит пока - может, нужно таймаут небольшой сделать перед reload?

_________________
Лишь одно в моём кармане - беспонтовый пирожок
vashurin
новый человек
9
Сообщения: 129
Зарегистрирован: 21.06.06
Откуда: Самара
Сообщение Добавлено: 15 Февраль 2008, 16:02:07 

Konyukhov писал(а):
vashurin, пока окно открыто (в котором все отображается корректно, из этого же окна и отправляю на печать или из тулбара, или правой кнопкой на документе - "печать"), оно открыто. Если сделать ему из скрипта то, что Вы сказали, оно тупо закроется.


Konyukhov, сравните свой код и мой:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
   <head>
      <script type="text/javascript">
         <!--
         function pop_up(){

            var to_print = open("", "displayWindow", "width=780,height=800,status=yes,scrollbars=yes,toolbar=yes,menubar=no");
              var content = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//RU" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
              + '<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />'
              + '<title>Ãàçïðîì Äîáû÷à Íîÿáðüñê - WEB-ïëàíåðêà</title>'
              + '<link href="/styles/print.css" rel="stylesheet" type="text/css" />'
              + '</head><body>'
              + '<h1>hello world</h1>\n<div>Fish<br/>Fish<br/>Fish<br/>Fish<br/>Fish<br/>Fish<br/></div>'
              + '</body></html>';
              to_print.document.open();
              to_print.document.write(content);
              to_print.document.close();         
         }
         -->
      </script>
   </head>
<body>
<input type="button" onclick="pop_up()" value="click" />
</body>
</html>

В предыдущем сообщении я ошибся и вместо
Код:
to_print.window.close();
надо писать
Код:
to_print.document.close();

Кстати, все у меня печатается и страницу перезагружать не надо.

_________________
С уважение, Вашурин Владимир.
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Сообщение Добавлено: 15 Февраль 2008, 19:50:40 
vashurin, понял, спасибо, попробую! Наверное в этом все и дело... потому как если нет то проблему искать разве что в области влияния вспышек на солнце на работу JS...

_________________
Лишь одно в моём кармане - беспонтовый пирожок
Konyukhov Муж.
новый человек
0
Сообщения: 166
Зарегистрирован: 10.12.06
Откуда: 89
Сообщение Добавлено: 16 Февраль 2008, 09:33:06 
vashurin, и вправду работает. Еще раз большое спасибо.

_________________
Лишь одно в моём кармане - беспонтовый пирожок
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 8 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100