为什么chrome会为canvas.toDataURL引发安全性异常

时间:2012-02-23 09:18:33

标签: javascript html5 dom google-chrome canvas

当我从本地文件系统加载此页面时,有人可以帮助我理解为什么chrome可能引发安全异常吗? Opera和Firefox没有问题,从我读过的内容来看,origin-clean标志应该仍然是真的。

<html>
<head>
<title>Canvas Test</title>
<script type="text/javascript">

    var canvas = document.createElement("canvas");
    canvas.setAttribute("width", 100);
    canvas.setAttribute("height", 100);

    var myImage = new Image();
    myImage.src = "gradient-1.png";

    function draw(){  
        document.body.appendChild(canvas);
        var ctx = canvas.getContext("2d");  
        ctx.drawImage(myImage, 0, 0, 100, 100);
        data = canvas.toDataURL("image/png");
        // Chrome says Uncaught Error: SECURITY_ERR: Dom Exception 18
    }

</script>
</head>

<body onload="draw()">
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我最好的猜测是你直接从浏览器的文件系统加载html文件。当我开始使用canvas而不是通过我的本地Web服务器运行代码时,我看到了同样的问题。尝试一下,否则它很可能是一个损坏的文件,因为你的代码是正确的。