2017-06-21 81 views
0

我的代码是像波纹管:linkElement.dispatchevent对象不支持此操作IE

  var file = new Blob([response.data], { type: 'application/pdf' }); 

      if (file.size != 0) { 

       var objectUrl = URL.createObjectURL(file); 

       var linkElement = document.createElement('a'); 

       linkElement.setAttribute('href', objectUrl); 

       linkElement.setAttribute("download", fileName); 

       var clickEvent; 
       //This is true only for IE,firefox 
       if (document.createEvent) { 
        // To create a mouse event , first we need to create an event and then initialize it. 
        clickEvent = document.createEvent("MouseEvent"); 
        clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
       } 
       else { 
        clickEvent = new MouseEvent('click', { 
         'view': window, 
         'bubbles': true, 
         'cancelable': true 
        }); 
       }     
       linkElement.dispatchEvent(clickEvent); 

此代码在Chrome & mozila,只能用IE 10以上问题的罚款。

任何人都可以帮助我,让它工作吗?

谢谢。

回答

1

此方法不适合所有浏览器。 所以你可以只是简单地使用Filesaver.js https://github.com/eligrey/FileSaver.js

在你的页面中包含Filesaver.js,并使用这个文件的saveAs方法如下。

var file = new Blob([response.data], { type: 'application/pdf' }); 
if (file.size != 0) 
{ 
    $window.saveAs(file, fileName);     
} 
相关问题