2012-11-19 3 views
1

와 이것은 내가 얻을 AJAX를 한 후 요청을 엑셀 다운로드를 시도했다 previous question부하 URL을 프로그래밍 jQuery를

그러나,이 가능하지 않을 내에서 피기 백이다.

는 이제 대신

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

의 나는 사용자가 modalbox의 버튼을 클릭 할 때 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; 
     } 
    }]       
}); 

답변

2

당신이 할 필요가 없습니다.

대신 location.href = someUrl;을 쓸 수 있습니다. 해당 URL이 적절한 헤더를 반환하는 한 브라우저는 수동으로 해당 URL로 이동 한 것처럼 저장 대화 상자를 표시합니다.

+0

정말 멋지다. 문제를 생각하는 것에 대해 이야기하십시오 ... 감사합니다! – birdy

0

숨겨진 링크를 클릭하려고하면 솔루션보다 "해킹"되는 경우가 많으므로이를 피하는 것이 좋습니다.

대신 jQuery를 사용하여 페이지에 숨겨진 iframe을 만들면 동일한 페이지에 머물러있는 동안 파일을 다운로드 할 수 있습니다.

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

디스플레이 스타일을 숨김으로 설정 했으므로 jquery가 페이지에서 컨트롤을 찾을 수없는 것 같습니다.

표시 스타일이 숨김으로 설정된 div 태그 내에서 링크를 감싸는 것이 좋습니다.

관련 문제