适用于 Chrome、Internet Explorer Firefox 和 Opera 的完整解决方案
这个页面上有很多不错的地方,但我必须结合使用一些东西才能让它全部工作。希望这对你有帮助。
- 使用按钮或链接触发名为 的函数
download()
:
<button class="button-no save-btn" ng-click="download()">DOWNLOAD</button>
- 把它放在你的控制器中:
$scope.download = function () {
// example shows a JSON file
var content = JSON.stringify($scope.stuffToPutInFile, null, " ");
var blob = new Blob([content], {type: 'application/json;charset=utf-8'});
if (window.navigator && window.navigator.msSaveBlob) {
// Internet Explorer workaround
$log.warn("Triggering download using msSaveBlob");
window.navigator.msSaveBlob(blob, "export.json");
} else {
// other browsers
$log.warn("Triggering download using webkit");
var url = (window.URL || window.webkitURL).createObjectURL(blob);
// create invisible element
var downloadLink = angular.element('<a></a>');
downloadLink.attr('href', url);
downloadLink.attr('download', 'export.json');
// make link invisible and add to the DOM (Firefox)
downloadLink.attr('style','display:none');
angular.element(document.body).append(downloadLink);
// trigger click
downloadLink[0].click();
}
};