【发布时间】:2011-02-05 21:41:19
【问题描述】:
不久前,我使用 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();
});
问题是脚本似乎没有等到窗口加载。它想在窗口出现的那一刻打印。结果,如果我在打印对话框中单击“取消”,它将一次又一次地弹出,直到窗口加载为止。第一次尝试打印时,我得到了一个空白页。那可能是因为窗口没有完成加载。
我需要找到一种方法来更改先前的代码块,以等待窗口加载然后打印。我觉得应该有一个简单的方法来做到这一点,但我还没有找到它。要么这样,要么我需要找到一种更好的方法来打开弹出窗口并从父窗口中的灯箱脚本打印,而不需要在弹出窗口中交替网页代码。
【问题讨论】:
标签: javascript jquery printing popup lightbox