我在点击按钮时尝试下载多个PDF文件。我目前的代码在Chrome中运行良好,但我无法在Firefox中使用它。
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();
});
});
它们位于“网络”标签中,但它们永远不会被发送下载。
是否有任何变通方法可以在Firefox中使用它?
答案 0 :(得分:0)
我有一个类似的Angular下载,这里的工作是:
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);
请确保您不会阻止来自网站的弹出窗口,这会在各种浏览器上多次绊倒我。
答案 1 :(得分:0)
我用IFrame下载。只需将URL传递给此功能即可下载。
.babelrc
然后你可以打电话给
$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++;
};