【问题标题】:linkElement.dispatchevent object doesn't support this action IElinkElement.dispatchevent 对象不支持这个动作 IE
【发布时间】:2017-06-21 11:47:31
【问题描述】:

我的代码如下:

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

谁能帮我让它工作?

谢谢。

【问题讨论】:

    标签: internet-explorer dispatchevent


    【解决方案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);                   
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多