<!doctype html>
<canvas id="canvas" height="200" width="200"></canvas>
<div id="new"></div>
<script>
var div = document.getElementById("new");
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var img = new Image();
img.src = 'http://www.w3.org/html/logo/downloads/HTML5_Logo_512.png';
//img.src = 'local.png';
img.onload = function(){
//draws the image on the canvas (works)
ctx.drawImage(img,0,0,200,200);
//creates an image from the canvas (works only for local.png)
var sourceStr = canvas.toDataURL();
//creates the img-tag and adds it to the div-container
var newImage = document.createElement("img");
newImage.src = sourceStr;
div.appendChild(newImage);
}
</script>
此脚本创建一个带有html5-logo的画布。在这个画布中,我想使用“toDataURL()”方法创建一个图像。在这里我收到一个安全错误。canvas.toDataURL()和drawImage()的安全错误
火狐说 - 错误:未捕获的异常:[异常... “安全错误” 代码: “1000” nsresult: “0x805303e8(NS_ERROR_DOM_SECURITY_ERR)”
铬说 - 未捕获的错误:SECURITY_ERR:DOM异常18
如果我使用脚本与服务器上的图像,它工作正常。所以它认为这次它真的是一个功能,而不是一个错误。 有没有人有一个想法,我可以如何使用画布创建一个图像与其他服务器的图像形式? 顺便说一句:如果您在没有Web服务器的情况下将站点作为本地文件运行,则会发生错误。
您是否找到答案?我有同样的问题,甚至发生在同一台服务器的图像上。一旦任何图像被绘制到画布中,整个画布就变得无法访问。 – Kokodoko 2014-05-15 16:56:35