Закрыть всплывающее окно после печати
Здравствуйте.
Подскажите, плз, как закрыть всплывающее окно после печати.
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, время: 12:42. |