开发者社区> 问答> 正文

canvas转换成img显示,为什么用toDataURL一直报is not a function错误

canvas转为img图片的toDataURL报错
页面上用canvas显示二维码进行打印,但是用jqprint打印插件无法显示canvas元素
所以要把canvas转换为img图片放到img元素中显示
看到网上的方法是用toDataURL这个方法,但是我用就一直报is not a function错误
代码如下

for(var i = 0; i < data.length; i++)
{
    $("#qrCode_" + i).qrcode({
        text: data[i]["qrcode"],
        height: 100,
        width: 100,
        //logo图片地址
        src: "<c:url value='/media/image/logo_qr.png' />"
    });
    $("#qrImg_" + i).src = $("#qrCode_" + i).find("canvas").toDataURL("image/png");
}

报错信息
screenshot

展开
收起
a123456678 2016-03-11 10:43:10 15715 0
1 条回答
写回答
取消 提交回答
  • toDataURL是原生canvas对象上的方法,$("#qrCode_" + i).find("canvas")返回的是jQuery对象,不是原生canvas

    var c = document.createElement('canvas');
    c.toDataURL();        
    
    // or 
    var c = document.getElementById('myCanvas');
    c.toDataURL();
    
    // or in your case
    $("#qrCode_" + i).find("canvas")[0].toDataURL(); // [0]拿到原生的canvas元素
    2019-07-17 18:58:39
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载