IE如何在新Tab中打开blob对象

时间:2016-06-21 07:17:44

标签: javascript jquery html internet-explorer

任何人都知道如何在IE新标签

中打开blob对象
var blob = base64toBlob(blobresponse);
    if (blob) {
        if (window.navigator &&
            window.navigator.msSaveOrOpenBlob) {
            var a = document.createElement("a");
            document.body.appendChild(a);
            a.href = window.URL.createObjectURL(blob);
            a.target = "_blank"
            a.download = "test.pdf";
            a.click();
        } else {
            var objectUrl = URL
                .createObjectURL(blob);
            window
                .open(objectUrl);
        }
    }

2 个答案:

答案 0 :(得分:0)

据我所知,IE在新标签页面中打开blob URL时出现问题。 但你可以强行下载。

window.navigator.msSaveOrOpenBlob(blob , 'test.pdf');

但是如果你想在IE中查看PDF,你可以尝试使用pdf.js(link

答案 1 :(得分:0)

您可以使用iframe进行操作

var blob = base64toBlob(blobresponse);

if (blob) {
    var tab = window.open();
    var objectUrl = URL.createObjectURL(blob);
    if (window.navigator &&
        window.navigator.msSaveOrOpenBlob) { // for IE
        var iframe= document.createElement("iframe");
        tab.document.body.appendChild(iframe);  
        iframe.src = objectUrl;
        iframe.setAttribute("style","width:100%;height:100%");                      
    } else { // for Chrome           
        tab.location.href = objectUrl;
    }
}