2016-05-13 44 views
0

我正在使用html2canvas。 Chrome瀏覽器下載圖片,但其他瀏覽器 請勿下載圖片。如何在javascript中下載畫布圖像(base64)

這是代碼:

html2canvas($("body")[0], { 
     onrendered: function(canvas) { 
     var img = canvas.toDataURL("image/png"); 
     var link = document.createElement('a'); 
     link.download = "test.png"; 
     link.href = img; 
     link.click(); 
     } 
    }); 

我怎樣才能讓圖片下載在其他瀏覽器?

回答

0

download屬性不是很寬的兼容性。

http://caniuse.com/#feat=download

但是,它工作在火狐,Chrome,Opera和Android的,如果它不爲你工作,這可能是因爲用戶不進行點擊事件(你正試圖下載上呈現事件),所以Chrome有一個安全漏洞。

如果用戶不在任何地方點擊,由於安全原因,不會觸發點擊。明顯。

+0

我應該怎麼做,而不是點擊事件? –

+0

製作一個按鈕,當用戶點擊該按鈕時,您可以下載該文件。不在渲染事件上。 –

+0

嗯幾乎是正確的(至少對於瀏覽器支持部分)。對於用戶單擊部分,每個支持'download'屬性的瀏覽器(*在其當前版本中,都不記得早期實現*),即Chrome,FF和Edge,確實會觸發js' AnchorElement.click()'方法。只有FF有一個*安全*步驟,需要將錨點附加到文檔以使其工作。 – Kaiido

0

它爲我,如果我觸發click如下之前添加link到頁面中,

document.body.appendChild(link); 
link.click(); 
link.parentNode.removeChild(link);