在多个浏览器上显示PDF文件的问题

时间:2019-10-20 19:52:26

标签: javascript jquery pdf

我正在尝试在新标签中显示pdf文件。 Firefox可以很好地加载它,但是Opera只能打开一个新窗口,而铬和vivaldi则什么也不会打开,如该图所示,它仅显示窗口的一小部分:

Google PDF

怎么了?如何使它在所有浏览器上都能正常工作?当我使用blob:URL并将其放入其他新标签页时,它将正确加载PDF ...

    const getPdfById = id => {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', proxy + "documents/" + parseInt(id), true);
    xhr.responseType = 'arraybuffer';
    xhr.setRequestHeader("Authorization", 'bearer ' + sessionStorage.access_token);
    xhr.onload = function(e) {
       if (this.status == 200) {
          var blob=new Blob([this.response], {type:"application/pdf"});
          var link=document.getElementById("pdf-link");
          link.href=window.URL.createObjectURL(blob);

       } if(this.status == 401){
               refreshToken();
               setTimeout(() => {
                getPdfById(id);
               }, 300);
       }
    };
xhr.send();
};

谢谢

0 个答案:

没有答案