弹出问题...不确定这是否是最好的方法

时间:2011-05-27 14:42:19

标签: javascript jquery popup

我编写了一个脚本,允许客户登录,并以PDF格式下载合同。

我们希望合约PDF能够在弹出窗口中打开,但是对于不了解网络浏览器基础知识的客户来说却遇到了问题......

基本上,客户登录并为其合同生成链接。该链接通过jQuery的实时事件处理程序绑定,该处理程序接收请求,将其发送到AJAX日志记录功能,然后通过window.open打开PDF。

由于用户的操作打开了窗口,我只能认为因为它首先通过其他2个函数,所以它会弹出阻止器。

有没有人有更好的想法?

我的代码遍布整个地方,在不同的名称空间中,所以我希望你们能搞清楚:

如果客户的凭据正确无误,则在回拨函数中生成链接:

$("#pdfLinks").prepend("<span><a href='#' id='pdfLink'><img src='img/btnDownloadPdf.png' alt='Downdload PDF' /><br>Download Adobe &copy; PDF<\/a><\/span>");
                                        $("#pdfLink").live('click', function() {
                                                UI.showWorkingDialog();
                                                net.tssol.contract.log(contractId['contract'], "DOWNLOAD_PDF", lead);
                                        });
                                        $("#pdfLinks").prepend("<h5>Adobe PDF<\/h5>");

tssol.log函数:

log: function(contract, method, lead) {
        $.post("log.php", { lead: lead,
                            method: method}, 
                            function(log) {
            if (log['success'] == true) {
                if (method == "DOWNLOAD_PDF") {
                    // change to window.open for popup
                    window.open("http://oururl.net/public_html/viewPdf.php?verify=" + contract, '', 'scrollbars=1,menubar=0,height=600,width=800,resizable=1,toolbar=0,location=0,status=0');

如果您认为有任何方法可以改善用户体验,请告诉我。

由于

1 个答案:

答案 0 :(得分:2)

也许您可以在弹出窗口中提供合约的HTML版本,并在弹出内容的底部添加“下载PDF”按钮?

但总的来说,你不应该使用弹出窗口,因为它们经常被网络浏览器阻止,并且在用户头上与垃圾和伟哥广告同步......你知道我的意思;)

我会在网站内部使用HTML-Contract进行类似jQuery Lightbox的弹出窗口,并可选择提供PDF下载按钮! 看看这个:http://fancybox.net/