javascript - 链接.click();在 Chrome 中工作时无法在 Internet Explorer 中工作

标签 javascript jquery angularjs internet-explorer

我有一个程序可以跟踪服务器上发生的事件数量。我希望能够将单个事件详细信息导出到 csv 文件并允许用户下载它。

我的首页上有一个按钮,如下所示:

<button class="btn btn-main btn-actions-ok" ng-click="exportIncident()">Export Incident</button>

在后端代码中,我有一个名为 totaDatarow []; 的数组数组;

            $scope.exportIncident = function () {
                var totalDataRow = [];
                var csvContent = "data:text/csv;charset=utf-8,";
                var exportDataHeader = ["Event Type", "User ID", "Event Date", "Description", "DocNum", "Library", "Version", "Comments"]
                totalDataRow.push(exportDataHeader);
                var incident = $scope.incident;
                incident.details.forEach(function (detail) {
                    var exportDatarow = [];
                    //logic to add incident information to exportDatarow
                    totalDataRow.push(exportDatarow);
                })

                totalDataRow.forEach(function (infoArray) {

                    dataString = infoArray.join(",");
                    csvContent = csvContent + "\n" + dataString
                });

                var encodedUri = encodeURI(csvContent);
                var link = document.createElement("a");
                link.setAttribute("href", encodedUri);
                link.setAttribute("download", "Incident_"+ incident.id +".csv");

                link.click();
            }

我没有使用window.open,因为通过使用这种方式,我找不到自定义生成文件的文件名的方法。因此,我在按钮内创建了一个链接,然后单击它进行下载。 在 Chrome 中,这段代码运行得很好。 csv 文件已创建并下载。然而,在 Internet Explorer 中,此代码根本不起作用。 当我点击按钮时什么也没有发生。 我通过调试器运行了这个,发现当 Internet Explorer 到达 link.click() 时。当它尝试处理该行时,什么也没有发生。

我需要这方面的帮助,因为我不知道这是我的代码问题还是 Internet Explorer 兼容性问题?或者其他什么,谢谢。

最佳答案

Internet Explorer 不支持下载 属性,但 Edge 支持

查看此帖子以获取解决方法:

关于javascript - 链接.click();在 Chrome 中工作时无法在 Internet Explorer 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803787/

相关文章:

javascript - 如何在纯 JavaScript 对象(非 DOM)上创建按键事件系统

javascript - 将搜索 div 添加为第一个导航列表项

javascript - 为什么我的提交按钮在此代码中不起作用?

javascript - 在具有固定链调用结束的循环中链接 jquery .when().then()

javascript - 根据 json 中的另一个字段获取值而不进行迭代 - Angular js

angularjs - Jquery文件上传 Angular 版-同一页面多个文件上传

javascript - 在 Vuejs 中使图片可点击

javascript - 如何从另一个 React 组件复制 Flow 类型的属性?

javascript - 如何在 jQuery 中声明这个函数? $(document).ready 不起作用

javascript - AngularJS $route 给出错误 : [$injector:unpr]