寫在前面
JS要實現(xiàn)下載功能,一般都是這么幾個過程:生成下載的URL,動態(tài)創(chuàng)建一個A標簽,并將其href指向生成的URL,然后觸發(fā)A標簽的單擊事件,這樣就會彈出下載對話框,從而實現(xiàn)了一個下載的功能。
這里所說的下載,有時候也可以理解為保存。出于安全考慮,JS肯定無法直接調(diào)用FileAPI寫文件到磁盤,但是卻可以通過下載來變相實現(xiàn)保存功能。
幾個備用知識點
2.1. JS觸發(fā)單擊事件
既然是用A標簽?zāi)M,那么肯定要知道JS如何主動觸發(fā)單擊事件。
最簡單的觸發(fā)單擊事件肯定是elem.click()
,平時在不需要考慮兼容性的場合我都是這么干的,但是畢竟這個方法有兼容性(具體兼容性如何沒做過測試),所以還是要掌握一個通用的方法。
以下代碼是網(wǎng)上比較容易找到的一段代碼,我在前面加了一段MouseEvent
的判斷:
/** * 觸發(fā)單擊事件 * @param elem 需要觸