1

これは私の前の質問からのピギーバックです

AJAX get リクエストの後に Excel をダウンロードしようとしましたが、それは実行できません。

だから今代わりに

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

ユーザーがモーダルボックスのボタンをクリックしたときに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;  
         }
     }]                        
 });
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 に答える