在新标签页(IE)中打开Blob网址

时间:2017-04-17 19:30:04

标签: javascript html angularjs internet-explorer

我在AngularJS应用程序中有以下程序在新标签页中打开文本文件以保存:

$scope.createString()
                .then(function () {
                    var windowReference = window.open();
                    var blob = new Blob([$scope.createdString], { type: 'text/plain' });
                    var url = (window.URL || window.webkitURL).createObjectURL(blob);
                    windowReference.location = url;
                 });

但这不起作用。它只会在新标签中打开相同的链接,但不会在创建的Blob-Url中打开。

我做错了什么?我该如何做到这一点?

更新:

我在IE中完成了这样的事情:

$scope.createString()
                .then(function () {
                    var blob = new Blob([$scope.createdString], { type: 'text/plain' });
                    window.navigator.msSaveOrOpenBlob(blob, 'Test.txt');
                 });

但是有一种适用于所有浏览器的标准化方法吗?

1 个答案:

答案 0 :(得分:0)

我用来完成这项工作的另一种方法是使用传统的<a>代码打开blob,使用target='_blank'属性。

获得blob对象网址后,只需将其插入href属性,您就会看到如下内容:

<a target="_blank" href="blob:http://example.com/523d3551-80fd-4fb0-a0fc-5194d928cc6d">Print</a>