2013-12-23 107 views
1

我有以下代碼在IE中可以正常工作,但在Chrome(版本31.0.1650.63米)中無法正常工作。
錯誤消息:未能在'HTMLCanvasElement'上執行'toDataURL':受污染的畫布可能無法導出。Javascript:將畫布轉換爲Chrome中的圖像

<html> 
<body> 
<img id="source" src="C:\test.jpg" /></br> 
<input type="button" value="convert" onclick="onClick()" /></br> 
<img id="output" /> 

<script> 
    onClick = function() { 
     var source = document.getElementById("source"); 
     var canvas = document.createElement("canvas"); 
     canvas.width = source.width; 
     canvas.height = source.width; 
     var ctx = canvas.getContext("2d"); 
     ctx.drawImage(source, 0, 0); 
     var output = document.getElementById("output"); 
     output.src = canvas.toDataURL("image/png"); 
    }; 
</script> 

</body> 
</html> 

我在這裏看到很多類似的問題,但沒有找到答案。 任何幫助,將不勝感激。

回答

1

MDN

雖然您可以使用圖像,而不在畫布CORS批准, 這麼做玷污畫布。一旦畫布受到污染,您就不能再將數據從畫布中拉出。

因此,您在畫布上繪製的圖像來自另一個域,因此您不允許使用畫布導出數據。 有關更多信息,請參閱MDN文章。