首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >toDataURL不是函数

toDataURL不是函数
EN

Stack Overflow用户
提问于 2011-12-29 19:46:10
回答 6查看 61.9K关注 0票数 29

我正在尝试为画布生成一个url。以下是我遵循的步骤:

代码语言:javascript
复制
var can = document.getElementsByTagName("canvas");
var src = can.toDataURL("image/png");

当我尝试在firebug上运行上面的代码时,它抛出了一个错误:

代码语言:javascript
复制
TypeError: can.toDataURL is not a function

我在ubuntu上运行火狐8。

EN

回答 6

Stack Overflow用户

发布于 2016-01-22 19:32:40

仔细检查,您正在运行toDataURL()画布对象本身,而不是在上下文对象上。

票数 8
EN

Stack Overflow用户

发布于 2011-12-29 19:49:55

代码语言:javascript
复制
var can = document.getElementsByTagName("canvas"); 

这将返回一个画布元素数组。您需要通过id获取画布。

代码语言:javascript
复制
var can = document.getElementById("canvasId"); 
票数 6
EN

Stack Overflow用户

发布于 2016-06-18 01:02:15

在公认的答案中没有提到的事情:即使使用ID选择器,jQuery的Sizzle也会返回一个对象/集合。因此,如果在使用jQuery时遇到此错误,请使用[0]附件访问元素的第一个索引。如果您很好奇,可以使用console.dir($('#canvasId));来探索这些索引

例如,这个完全正常的选择器将失败:

代码语言:javascript
复制
var src = $('#canvasId').toDataURL("image/png");

但是这个可以工作(注意额外的括号):

代码语言:javascript
复制
var src = ($('#canvasId')[0]).toDataURL("image/png");
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8667458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档