открыть в новом окне и отправить на печать
Всем привет.
У меня работал js скрипт на странице, который выводит на печать страницу. Так вот после обновления браузера (хром), заметил что при выводе на печать стиль style_print.css не применяется. А если отменить печать и не закрыть окно печати, то стили прогружаются сами...:-E Вот мой код вывода на печать: $("#print_tab").click(function() { var new_wnd = window.open(location.href+"?tmpl=component&print=1&layout=default&page=", "subWindow", "status,menubar,height=700,width=700,scrollbars=yes"); var new_content = '<html><head><title>123</title><meta http-equiv="content-type" content="text/html; charset=utf-8" />'; css_path = "<?php echo JURI::base().'css/style_print.css'; ?>" new_content += '<script type="text\/javascript">function ImportStyleFile () {' new_content += 'var linkTag = document.createElement ("link");' new_content += 'linkTag.href = "'+ css_path +'";' new_content += 'linkTag.rel = "stylesheet";' new_content += 'var head = document.getElementsByTagName ("head")[0];' new_content += 'head.appendChild (linkTag);' new_content += '}<\/script>'; new_content += '</head><body onload="ImportStyleFile()">'; new_content += $("#main_tab").html(); new_content += '</body><html>'; new_wnd.document.write(new_content); new_wnd.document.close(); new_wnd.print(); }); Поэтому я хочу обойти этот глюк. При нажатии кнопки на печать, чтоб открывалась страница в новом окне со стилем style_print.css, и когда она догрузилась, вызывать команду браузера выбора принтера...:write: |
добрый вечер помогите пож решить
подсчитать сумму чисел кратных 5 и произведение положительных чисел вводимых с клавиатуры. ввод чисел должен быть завершен при наборе числа 0 |
kristow, зачем ты подключаешь таким странным образом? Почему просто не прописать через тег <link> прямо в разметке?
Пояснение: тег <link> блокирует дальнейшую обработку документа до тех пор пока не стиль не подгрузится и не применится. Соотв-но к моменту исполнения скрипта все будет уже готово. Если же стиль добавлять через appendChild, то стиль будет подгружаться асинхронно, и скорее всего не успеет подгрузиться. Помимо этого, print() надо наверное разместить внутри html кода, чтобы он не выполнился раньше загрузки стиля. |
Вложений: 1
Спасибо за ответы.
Сделал вот так: $("#print_tab").click(function() { var new_wnd = window.open(location.href+"?tmpl=component&print=1&layout=default&page=", "subWindow", "status,menubar,height=800,width=800,toolbar=1,scrollbars=yes"); var new_content = '<html><head><title>Мой сайт</title><meta http-equiv="content-type" content="text/html; charset=utf-8" />'; new_content += '<link rel="stylesheet" type="text/css" href="css/style_print2.css?<?php echo rand()*10000; ?>" /></head><body>' new_content += '<img src="img/sp.png" class="leftimg">'; new_content += $("#main").html(); new_content += '</body><html>'; new_wnd.document.write(new_content); new_wnd.document.close(); new_wnd.focus(); setTimeout(function() { new_wnd.print(); new_wnd.close(); }, 100); }); Вроде как и стиль прогружается... Но вот возник другой вопрос... Как программно включить в настройках печати браузеров: "Верхние и нижние колонтитулы" и "Фон"? Если включаю эти настройки руками, то все отлично, и при печати выводятся колонтитулы и фон в таблице который нужен. Но открываю на другом ПК, и вижу что эти же настройки выключены. Подскажите как можно программно задать автоматическое включение этих настроек в браузере при печати с моего сайта? |
Часовой пояс GMT +3, время: 06:47. |