Используя JQuery для открытия всплывающего окна и печати

Некоторое время назад я создал плагин лайтбокса использование jQuery, который загрузит URL, указанный в ссылке в лайтбокс. Код действительно прост:

$('.readmore').each(function(i){
    $(this).popup();
});

и ссылка была бы похожа на это:

<a class='readmore' href='view-details.php?Id=11'>TJ Kirchner</a>

Плагин мог также принять, что аргументы в пользу ширины, высоты, другого URL и большего количества данных прошли.

Проблема, с которой я сталкиваюсь прямо сейчас, печатает лайтбокс. Я настроил его так, чтобы лайтбокс имел кнопку печати наверху поля. Та ссылка открыла бы новое окно и распечатала бы то окно. Этим все управляет плагин лайтбокса. Вот то, на что похож тот код:

$('.printBtn').bind('click',function() {
    var url = options.url + ( ( options.url.indexOf('?') < 0 && options.data != "" ) ? '?' : '&' ) + options.data;
    var thePopup = window.open( url, "Member Listing", "menubar=0,location=0,height=700,width=700" );
    thePopup.print();
});

Проблемой является сценарий, кажется, не ожидает до загрузок окна. Это хочет распечатать момент, окно появляется. В результате, если я нажму "отмену" к диалоговому окну печати, то она раскроется снова и снова до загрузок окна. В первый раз, когда я пытался печатать, я получил пустую страницу. Это могло бы быть то, потому что окно не закончило загрузку.

Я должен найти способ изменить предыдущий блок кода, чтобы ожидать до загрузок окна и затем распечатать. Я чувствую, что должен быть простой способ сделать это, но я еще не нашел его. Или это, или я должен найти лучший способ открыть всплывающее окно и печать из сценария лайтбокса в родительском окне, не чередуя код веб-страницы во всплывающем окне.

14
задан TJ Kirchner 8 April 2010 в 21:06
поделиться

3 ответа

Вы должны поместить функцию печати в свой файл view-details.php и вызывать ее после загрузки файла, используя

<body onload="window.print()"> 

или

$(document).ready(function () { 
  window.print(); 
});
28
ответ дан 1 December 2019 в 07:39
поделиться

Вы уверены, что не можете изменить HTML во всплывающем окне?

Если можете, добавьте тег