非常に似た要件が指定されていますここ。
ユーザーのブラウザでダウンロードを手動で開始させる必要がある場合$('a#someID').click();
window.href
しかし、この方法は現在のページの内容をダウンロードしようとしているファイルに置き換えてしまうため、使用できません。
代わりに、ダウンロードを新しいウィンドウ/タブで開きたいのですが、どうすればいいでしょうか?
ベストアンサー1
目に見えないものを使用する<iframe>
:
<iframe id="my_iframe" style="display:none;"></iframe>
<script>
function Download(url) {
document.getElementById('my_iframe').src = url;
};
</script>
ブラウザがレンダリング可能なファイル(HTMLやテキストファイルなど)を強制的にダウンロードするには、サーバー側でファイルのMIMEタイプapplication/x-please-download-me
または などの無意味な値に変換されますapplication/octet-stream
。これは任意のバイナリ データに使用されます。
新しいタブでのみ開きたい場合、これを実現する唯一の方法は、target
属性が に設定されたリンクをユーザーがクリックすることです_blank
。
jQuery の場合:
$('a#someID').attr({target: '_blank',
href : 'http://localhost/directory/file.pdf'});
そのリンクをクリックすると、新しいタブ/ウィンドウにファイルがダウンロードされます。