触发单击AngularJS动态创建的元素

前端之家收集整理的这篇文章主要介绍了触发单击AngularJS动态创建的元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用AngularJS创建一个新标签,以便下载csv文件.我用来触发下载的代码下面.下载从Chrome开始,但不在Firefox中.你知道为什么会这样吗?

var element = angular.element('<a/>');
element.attr({
   href: exportedString,target: '_self',download: 'test.csv'
})[0].click();

编辑:Firefox需要一个现有的DOM

JS:

var linkElem = $("#link");
var element = angular.element(linkElem);

HTML:

<a ng-hide=true id="link"></a>

编辑2:在Chrome上,下载的文件名是“下载”而不是传递的值(本例中为“test.csv”).有什么建议?

这里还有一个plunker

解决方法

这是 issue #377860报告的Chrome 35中的一个错误.

请按照this的答案了解更多详情

我更新了您的plunker解决方案.

基本上你需要使用它如下:

var element = document.createElement('a');
var blob = new Blob([$scope.exportContent],{
  type: 'text/csv'
});
var url = URL.createObjectURL(blob);
element.href = url;
element.setAttribute('download','test.csv');
document.body.appendChild(element); //Append the element to work in firefox
element.click();

猜你在找的Angularjs相关文章