Javascript:将画布另存为图像 ==>“未捕获的类型错误:未定义不是函数”

Posted

技术标签:

【中文标题】Javascript:将画布另存为图像 ==>“未捕获的类型错误:未定义不是函数”【英文标题】:Javascript: save canvas as image ==> "Uncaught TypeError: undefined is not a function" 【发布时间】:2014-08-05 08:53:58 【问题描述】:

我正在尝试将谷歌地图画布保存为 .png 图像。但我反复收到此错误: ==> "Uncaught TypeError: undefined is not a function"

==> 在以下情况下会发生错误: ctx = canvas.getContext("2d") 被称为

我使用这里找到的 FileSaver.js、Blob.js 和 canvas-toBlob.js: https://github.com/eligrey/FileSaver.js

这里是代码(注意:googelmaps initializeMap 函数不包括在内):

<html>
<head>
<script>
            function initializeMap() 
                .... bla bla bla ...
            

            google.maps.event.addListenerOnce(map, 'idle', function()

                var canvas = document.getElementById('SingleMapCanvas'), ctx = canvas.getContext("2d");

                canvas.toBlob(function(blob) 
                    saveAs(blob, "prettyImage.png");
                ); 
            );
</script>
</head>

<body onload="initializeMap();">
    <div id="SingleMapCanvas">
    </div>
</body>
</html>

【问题讨论】:

【参考方案1】:

您在 HTML 中提到的标签应该是“画布”标签而不是“div”

<body onload="initializeMap();">
        <canvas id="SingleMapCanvas">
        </canvas>
</body>

这是一个同样的 jsFiddle demo。希望对你有帮助:)

【讨论】:

太棒了,图像已保存,但它是空的。但那是一个不同的问题,可能是另一个问题。谢谢。 @xpnimi 如果有效,请您将答案标记为正确:)

以上是关于Javascript:将画布另存为图像 ==>“未捕获的类型错误:未定义不是函数”的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 将元素另存为图像或 Extjs 4.x 另存为图像

将 HTML 表格另存为图像

单击链接完整脚本后将图形另存为图像

将画布另存为 png

FileSaver.js 另存为类型不正确

使用php另存为网页