问题描述
||
我编写了一个脚本,该脚本允许客户登录并以PDF下载他们的合同。
我们希望合同PDF在弹出窗口中打开,但对于不了解Web浏览器基础知识的客户来说正遇到问题...
基本上,客户登录并为其合同生成一个链接。该链接通过jQuery的实时事件处理程序进行绑定,该处理程序接受请求,将其发送到AJAX日志记录功能,然后通过window.open打开PDF。
由于打开窗口是用户的操作,因此我只能认为,因为它首先执行了其他2个功能,所以弹出窗口阻止程序已启动。
有人有更好的主意吗?
我的代码到处都是,在不同的命名空间中,所以我希望你们能弄清楚一切:
如果客户的凭据正确,则在回调函数中生成链接:
$(\"#pdfLinks\").prepend(\"<span><a href=\'#\' id=\'pdfLink\'><img src=\'img/btnDownloadPdf.png\' alt=\'Downdload PDF\' /><br>Download Adobe © 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\');
让我知道你们是否发现可以改善用户体验的任何方法。
谢谢
解决方法
也许您可以在弹出窗口中提供合同的HTML版本,并在弹出内容的底部添加一个“下载PDF”按钮?
但是一般来说,您不应该使用弹出式窗口,因为它们经常被网络浏览器阻止,并且与垃圾邮件和伟哥广告保持同步。.您知道我的意思;)
我会使用HTML-Contract在网站内部做类似jQuery Lightbox的弹出窗口,并可以选择提供PDF下载按钮!
看看这个:http://fancybox.net/