1

这是我上一个问题的附带条件

我试图在 AJAX 获取请求后下载 excel,但是,这是不可行的。

所以现在而不是

$.get("downloadExcel", {  
    'foo': 'bar'
});

我在页面上有一个隐藏的 url,当用户单击 modalbox 上的按钮时,我想使用 jQuery UI 单击它。我将以编程方式修改 URL 的参数,但我不知道如何使用 jQuery 加载单击 URL,就好像用户单击它一样:

<a href="downloadExcel?foo=bar" id="hiddenLink" src="display: none;"></a>
   $("#testexcel").dialog({
    autoOpen : false,
    draggable : false,
    resizable : false,
    modal : true,
    buttons: [{
         text: "Download File",
     click: function () {
            $("#hiddenLink").click();   //this doesn't work                       
            jQuery(this).dialog( "close" );
            return true;  
         }
     }]                        
 });
4

3 回答 3

2

你不需要这样做。

相反,您可以只写location.href = someUrl;. 只要该 URL 返回适当的标头,浏览器就会显示一个保存对话框,就像您手动导航到该 URL 一样。

于 2012-11-19T00:59:33.397 回答
0

尝试点击隐藏链接更像是“黑客”而不是解决方案,我建议避免它。

相反,您可能希望使用 jQuery 在页面上创建一个隐藏的 iframe,这将允许您让用户在停留在同一页面上的同时下载文件。

$('<iframe />', {
    src: 'downloadLink.html',
    style: 'display:none'
}).appendTo('body');
于 2012-11-19T01:00:07.527 回答
0

由于您已将显示样式设置为隐藏,因此 jquery 可能无法在页面上找到该控件。

尝试将链接包装在显示样式设置为隐藏的 div 标记中。

于 2012-11-19T01:04:11.737 回答