Закрыть всплывающее окно после печати
Здравствуйте.
Подскажите, плз, как закрыть всплывающее окно после печати. window.onload = function() { var width = screen.width; var height = screen.height; var params = \'width=500,height=220,left=\' + (width / 2 - 250) + \',top=\' + (height / 2 - 110); var newwin = window.open(\'URL\', \'print\', params); newwin.focus(); newwin.print(); //newwin.close(); return true; } Все одинарные кавычки экранированы, так как HTML основной страницы генерируется в php. Если раскомментировать newwin.close(), то окно закрывается сразу после того, как открылось и нажать кнопку печать в диалоге печати нет никакой возможности. Домен родительского окна и всплывающего - идентичен, имею возможность отредактировать код страницы, открывающейся во всплывающем окне |
Пока ждал ответа разобрался сам. Правда, получилось не совсем так, как хотелось бы, но главное, что работает. Из кода, который создает всплывающее окно убрал newwin.print(); а в код страницы, которая загружается в window.open() добавил:
var winPrint = setTimeout('print()', 50); var winClose = setTimeout('window.close()', 300); Почему это не работало из скрипта, создающее новое окно, я так и не разобрался. Зато теперь появился другой вопрос - если открывать всплывающее окно нажатием на ссылку, тогда если ссылка расположена внизу страницы (чтобы до неё добраться нужно прокрутить страницу вниз) после открытия нового окна в родительском окне вся страница подымается в самый верх (перебрасывает на начало/верх страницы): <a href="#" onclick="window_create('URL')">TEXT</a> Используя: <a href="javascript:window_create('URL')">TEXT</a> все ок, кроме того, что если попытаться открыть ссылку в новом окне появляется пустое новое окно... Посоветуйте, как правильно решить задачу? |
Что бы не перекидывало в самый верх нужно заблочить стандартные действия события.
event.preventDefault(); или в конце напиши return false; |
Часовой пояс GMT +3, время: 02:42. |