2017-01-23 115 views
0

我已经使用JS for IE9创建了新的下载功能,但它不起作用。ie9 javascript下载功能不起作用

descargarArchivo : function (url, idlote) { 
      var str = window.location.href+"/"+url; 
      str = str.replace("form.do/", ""); 
      // Le da nombre del fichero que se va a descargar 
      var filename = 'factura_'+idlote; 
      xhr= new XMLHttpRequest(); 
      xhr.responseType = 'blob'; 
      xhr.onload = function() { 
         var a = document.createElement('a'); 
         a.href = window.URL.createObjectURL(xhr.response); 
         a.download = filename; // Set the file name. 
         a.style.display = 'none'; 
         document.body.appendChild(a);       
         a.click(); 
         delete a; 
        } 
       } 
      }; 
      xhr.open('GET', str); 
      xhr.send(); 
     } 

我读到,在IE9中没有Blob类型,所以xhr.response返回undefined。我该如何解决它?

+2

你是否在stackoverflow上搜索解决方案,似乎已经有人问过这个问题? IE9 Blob Polyfill – epascarello

+0

是的,但我有很多没有答案的问题。 –

+0

那么你不能使用Ajax,而是提交一个表单并让服务器设置下载标题。 – epascarello

回答

0

看看这个答案:https://stackoverflow.com/a/1926163/2435443

他用注射的VBScript (的ActiveXObject)以字节字符串转换为二进制数组,它是一种无对象定义斑点“仿真”的。看起来很快&健壮。