用jQuery以编程方式加载url

时间:2012-11-19 00:56:15

标签: jquery ajax jquery-ui jquery-ui-dialog

这是我previous question

的背驮式

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

所以现在而不是

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

我在页面上有一个隐藏的URL,当用户单击模态框上的按钮时,我想使用jQuery UI单击该URL。我将以编程方式修改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;  
         }
     }]                        
 });

3 个答案:

答案 0 :(得分:2)

你不需要这样做。

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

答案 1 :(得分:0)

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

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

$('<iframe />', {
    src: 'downloadLink.html',
    style: 'display:none'
}).appendTo('body');

答案 2 :(得分:0)

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

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