javascript – 未捕获TypeMismatchError:无法在’CanvasRenderingContext2D’上执行’drawImage’

我遇到以下代码段的问题:

var o = $("#inserted_motive").find("span");
    $.contains(document.documentElement,o[0]) ? b.fillText(m,i,h) : b.drawImage(d,h,e,f);
    var p = a.toDataURL("image/png");
    window.open(p)
}),$(function () {
    $("#tabs").tabs()
});

出现以下错误

Uncaught TypeMismatchError: Failed to execute ‘drawImage’ on ‘CanvasRenderingContext2D’: The 1st argument provided is either null,or an invalid HTMLImageElement,HTMLCanvasElement or HTMLVideoElement object.

也回答了这个问题;

$("#creator").click(function () {
    var a = document.getElementById("final_image"),b = a.getContext("2d"),c = document.getElementById("shirt_main_canvas"),d = document.getElementById("inserted_image");
    b.drawImage(c,0);
    var e = $("#inserted_image").width(),f = $("#inserted_image").height(),g = $("#inserted_motive").position(),h = g.top,i = g.left,j = $("#inserted_motive span").css("font-size"),k = $("#inserted_motive span").css("font-family"),l = $("#inserted_motive span").css("color"),m = $("#inserted_motive span").text(),n = j + " " + k;

解决方法

你应该检查你的html中你的#inserted_image是什么,因为它似乎不是:

>有效的HTMLImageElement>一个HTMLCanvasElement>一个HTMLVideoElement对象

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...