В то время как я создал плагин lightbox, используя jQuery, который загрузил бы URL-адрес, указанный в ссылке, в лайтбокс. Код очень прост:
$('.readmore').each(function(i){
$(this).popup();
});
и ссылка будет выглядеть так:
<a class='readmore' href='view-details.php?Id=11'>TJ Kirchner</a>
Плагин может также принимать аргументы для ширины, высоты, другого URL-адреса и более данных для прохождения.
Проблема, с которой я сейчас сталкиваюсь, - это распечатать лайтбокс. Я настроил его так, чтобы в лайтбоксе была кнопка печати в верхней части окна. Эта ссылка откроет новое окно и напечатает это окно. Все это контролируется плагином lightbox. Вот как выглядит этот код:
$('.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();
});
Проблема заключается в том, что script, похоже, не ждет, пока окно загрузится. Он хочет напечатать момент появления окна. В результате, если я нажму "отменить" в диалоговом окне печати, он будет всплывать снова и снова, пока не загрузится окно. В первый раз, когда я попробовал распечатать, я получил пустую страницу. Возможно, это связано с тем, что окно не завершило загрузку.
Мне нужно найти способ изменить предыдущий блок кода, чтобы ждать, пока окно загрузится, а затем распечатает. Я чувствую, что должен быть простой способ сделать это, но я еще не нашел его. Либо это, либо мне нужно найти лучший способ открыть всплывающее окно и распечатать из лайтбокса script в родительском окне, не меняя код веб-страницы во всплывающем окне.