Лучший способ сделать это - создать iframe и запустить загрузку оттуда.
Я проверил это в Chrome, IE6 + и Firefox, и этот подход работает во всех из них.
Пример кода:
function DownloadFile(filePath) {
var downloadIframe = $('<iframe />',
{
id : 'downloadIframe'
}).appendTo('body');
downloadIframe.attr('src', filePath);
}
Это будет работать правильно только для однократной загрузки (так как мы жестко закодировали идентификатор), если вы запускаете несколько загрузок, тогда я предлагаю вам повторно использовать iframe, сохраняя его в более широкой переменной. *