Javascript 使用todataurl时出现类型错误

Javascript 使用todataurl时出现类型错误,javascript,jquery,canvas,Javascript,Jquery,Canvas,每当我尝试运行这个程序时,我都会在chrome中遇到一个类型错误:代码更新 // Get the drawing canvas canvas = $('#drawing'); context = canvas[0].getContext('2d'); function resizeCanvas() { canvas.attr({'width' : $(window).width()}); canvas.attr({'height' : $(window).height() -

每当我尝试运行这个程序时,我都会在chrome中遇到一个类型错误:代码更新

// Get the drawing canvas
canvas = $('#drawing');
context = canvas[0].getContext('2d');

function resizeCanvas() {

    canvas.attr({'width' : $(window).width()});
    canvas.attr({'height' : $(window).height() - 158});

    var dataURL = canvas[0].toDataURL('image/png');
    context.drawImage(dataURL, 0, 0);

}

$(window).resize(function() {
    resizeCanvas();
}); resizeCanvas();

// Various event handlers after this.

为什么

您的代码似乎很好。检查以下各项:

  • 存在id为绘图的
    画布
    元素
    
  • 您的Chrome版本支持
    canvas

  • drawImage
    获取图像或画布引用,您将向其传递一个字符串

    例如:

    var a = document.createElement("canvas");
    a.getContext("2d").drawImage("asdasdasd", 0, 0 )
    //TypeError: Type error
    
    你可以试试:

    context.drawImage(canvas[0], 0, 0);
    


    是的,它确实支持canvas,实际上,有更多与canvas相关的代码,我将事件处理程序绑定到canvas元素,它们都可以工作。只是这一行抛出了一个类型错误。#绘图元素也存在!抛出该错误的确切线路是什么<代码>获取上下文
    ?我在本地试用了你的代码,一切都很好。只有当
    canvas
    元素与给定的
    id
    @Johnny不存在时,我才能够重现这个错误。当你说出你得到的错误时,你会更快地解决这个问题。在chrome中,它字面上只在行上下文上说“Uncaught Typeerror:type error”。drawImage()。我让它工作到一定程度,但它仍然抛出错误,当我调整窗口大小时,我不能做任何其他事情(我还想做一些其他事情,比如调整画布大小以适应窗口,但这个错误阻止了这些事情的发生)我已经更新了代码,以防问题是我错过的其他代码干扰。未捕获类型错误:类型错误
    var image = new Image();
    image.src = dataURL;
    context.drawImage( image, 0, 0 );