Javascript AngularJS:发送文件以在Firefox中下载
我试图在点击按钮时下载几个PDF文件。我目前的代码在Chrome中运行良好,但在Firefox中无法运行Javascript AngularJS:发送文件以在Firefox中下载,javascript,angularjs,firefox,Javascript,Angularjs,Firefox,我试图在点击按钮时下载几个PDF文件。我目前的代码在Chrome中运行良好,但在Firefox中无法运行 angular.forEach(downloads, function(download) { $http.get(download.url, {responseType: 'arraybuffer'}).then(function(response) { var blob = new Blob([response.data], {type: "applicatio
angular.forEach(downloads, function(download) {
$http.get(download.url, {responseType: 'arraybuffer'}).then(function(response) {
var blob = new Blob([response.data], {type: "application/pdf"});
var downloadLink = angular.element('<a></a>');
downloadLink.attr('href',window.URL.createObjectURL(blob));
downloadLink.attr('download', download.name);
downloadLink[0].click();
});
});
angular.forEach(下载,函数(下载){
$http.get(download.url,{responseType:'arraybuffer'}){
var blob=new blob([response.data],{type:“application/pdf”});
var downloadLink=angular.element('
在Firefox中是否有任何解决方法可以让这项功能正常工作?我有一个类似的角度下载,这里的工作原理是:
var blob = new Blob([response.data], {type: "application/pdf"});
var blobURL = window.URL.createObjectURL(blob);
if (window.navigator.msSaveOrOpenBlob) {
// of course, IE needs special hand-holding....
window.navigator.msSaveOrOpenBlob(blob, 'something.pdf');
} else {
window.open(blobURL);
请绝对确保您没有阻止该网站的弹出窗口,这已经让我在各种浏览器上多次被绊倒。我使用了IFrame进行下载。只需将url传递给此函数即可下载
$scope.downloadUrl = function (url) {
var oIframe = window.document.createElement('iframe');
var $body = $(document.body);
var $oIframe = $(oIframe).attr({
src: url,
style: 'display:none;'
});
$body.append($oIframe);
$scope.actions++;
};
然后你可以打电话给我
$scope.downloadUrl('/data/url/goes/here');
这只是在ChromeChrome上的一个新选项卡中打开,它总是在这里打开PDF,它从不下载。您可以尝试将类型设置为“应用程序/八位字节流”-这应该会强制下载。这会将内容放在iframe中,但不会让浏览器想下载它Firefox&IE不支持在同一页面上进行多次下载,因为Chrome不支持多次下载。我在Firefox上使用了上述代码进行解决,而且确实有效。有关通过iframe下载的更多信息,请参阅本文:[链接]