Internet explorer linkElement.dispatchevent对象不支持此操作

Internet explorer linkElement.dispatchevent对象不支持此操作,internet-explorer,dispatchevent,Internet Explorer,Dispatchevent,我的代码如下: var file = new Blob([response.data], { type: 'application/pdf' }); if (file.size != 0) { var objectUrl = URL.createObjectURL(file); var linkElement = document.createElement('a');

我的代码如下:

         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或更高版本

谁能帮我把它修好吗


谢谢。

此方法不适用于所有浏览器。 因此,您只需使用Filesaver.js即可

在页面中包含Filesaver.js,并在此文件中使用saveAs方法,如下所示

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