使用JavaScript从Internet Explorer中的Blob获取URL

使用JavaScript从Internet Explorer中的Blob获取URL,javascript,internet-explorer,pdf,printjs,Javascript,Internet Explorer,Pdf,Printjs,我需要打印一个PDF文件,该文件是通过JavaScript中的GET请求获得的。为了进行我使用的实际打印,它可以用于从特定的PDF URL打印 我的代码如下所示: printChart() { var req = new XMLHttpRequest(); req.open('GET', 'http://localhost:8080/test.pdf', true); req.responseType = 'blob'; req.onload = function (event

我需要打印一个PDF文件,该文件是通过JavaScript中的GET请求获得的。为了进行我使用的实际打印,它可以用于从特定的PDF URL打印

我的代码如下所示:

printChart() {
  var req = new XMLHttpRequest();
  req.open('GET', 'http://localhost:8080/test.pdf', true);
  req.responseType = 'blob';

  req.onload = function (event) {
    var blob = req.response;
    var blobURL = window.URL.createObjectURL(blob);

    printJS(blobURL);
  };

  req.send();
}
这在Chrome中运行良好,但问题是它不能在Internet Explorer中打印任何内容(在IE 11中测试)。显然,window.URL.createObjectURL在IE中无法正常工作


虽然IE中有一个方法,但这对我帮助不大,因为我需要打印PDF,而不是保存它。

尝试用谷歌搜索“createObjectURL polyfill”,有什么理由不简单地将原始url交给printJS函数,
http://localhost:8080/test.pdf
。我的意思是,从url获取一个文件,将其转换为blob,然后将其交给一个需要url的函数,这听起来很奇怪。@enhzflep是的,你有道理,但问题是我不会像上面的示例那样打印静态资源。我将通过AJAX请求从后端接收生成的PDF文件(我还不知道具体的实现细节)。我收到的文件可能会以Blob的形式提供。尝试以dataUrl(base64)的形式打开它。尝试通过谷歌搜索“createObjectURL polyfill”是否有任何理由不将原始url,
http://localhost:8080/test.pdf
。我的意思是,从url获取一个文件,将其转换为blob,然后将其交给一个需要url的函数,这听起来很奇怪。@enhzflep是的,你有道理,但问题是我不会像上面的示例那样打印静态资源。我将通过AJAX请求从后端接收生成的PDF文件(我还不知道具体的实现细节)。我收到的文件可能会以Blob的形式提供。请尝试以dataUrl(base64)的形式打开它