4

我是 JS 的完全初学者,我只是在玩 HTML5。在进行实验时,我遇到了这个问题。我有这样的事情:

<!DOCTYPE html>
<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">
            function graph() {
                // ...stuff that draws to canvas, verified "working"...
                var downloadLink = document.getElementById("myCanvas").toDataURL();
                $("#dlLink").attr("href", downloadLink);
            }
            $(window).load(function() {
                graph();
            });
        </script>
    </head>
    <body>
        <div class="container">
            <h1 style = ";padding-bottom:30px;"><a href="#">Tool</a></h1>
            <canvas id="myCanvas" width="400" height="400"></canvas>
            <a href="#" id="dlLink">Download</a>
        </div>
    </body>
</html>

当我单击使用 base64 编码的下载链接时,我得到一个空白图像。任何人都可以揭示为什么会这样吗?似乎链接是在画布上有任何东西之前生成的,但我不能确定。

4

2 回答 2

3

相反,试试这个:

$("#dlLink").click(function(){
    var win=window.open();
    win.document.write("<img src='"+document.getElementById("myCanvas").toDataURL()+"'/>");
});
于 2013-09-29T02:22:47.333 回答
0

尝试向 toDataURL 传递内容类型,如“image/png”或“image/jpeg”。( canvas.toDataURL("image/png"));

于 2013-09-29T02:15:52.910 回答