2016-02-17 51 views
0
var anchor = angular.element('<a/>'); 
anchor.attr({ 
    href: 'data:attachment/csv;charset=utf-8,' + encodeURI(response.data), 
    target: '_blank', 
    download: 'Rates.csv' 
})[0].click(); 

此錨點元素不工作在Firefox和Internet Explorer中,但在Chrome中工作。是否因爲我從不將元素添加到DOM?我該如何解決?錨點擊下載不工作在Firefox中

這是從服務器獲取費率並作爲附件下載顯示。

UPDATE:

var anchor = document.createElement('a'); 
anchor.href = 'data:attachment/csv;charset=utf-8,' + encodeURI(response.data); 
anchor.target = '_blank'; 
anchor.download = 'Rates.csv'; 
document.body.appendChild(anchor); 
anchor.click(); 
$timeout(function() { 
    anchor.remove(); 
}, 50); 

添加這在我的指令,並且現在是工作的罰款。

+0

將它添加到DOM,點擊,從DOM中刪除它...!? – LGSon

+0

在Firefox中工作,但不在邊緣......任何想法? – Marcin

回答

0

我不角那麼多工作,但如果要傳遞到ATTR()方法下載屬性表示HTML5下載屬性,你的問題是,這是不完全在所有瀏覽器都支持呢。

1

click()適用於Chrome。對於Firefox,您可以嘗試下面的代碼

var ev = document.createEvent("MouseEvents"); 
ev.initMouseEvent("click", true, false, self, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 

// Fire event 
anchor.dispatchEvent(ev);