2011-11-30 10 views
32

Me gustaría poder crear elementos Canvas desde el constructor para poder hacer una función como esta.se puede crear el elemento HTML5 Canvas desde el constructor Canvas

function createCanvasContext(height,width) 
{ 
    var body = document.getElementsById('body')[0]; 
    var canvas = new Canvas(); 
    canvas.height=height; 
    canvas.width = width; 
    var context = canvas.getContext('2d'); 
    body.appendChild(canvas); 
    return context; 
} 

Me aparece un error en el lienzo de la línea var = new Mano() diciendo que la lona no está definido "no HTML5 no permite crear elementos de la constructora? o hay parámetros que necesito pasar al constructor. Cualquier idea sería genial.

+3

No hay ningún constructor de Lona. Si desea citar un nuevo elemento '', use 'var canvas = document.createElement (" canvas ");'. *PD. [Esta respuesta] (http://stackoverflow.com/a/7858231/938089) parece resolver su pregunta anterior. Use la función [Aceptar respuesta] (http://meta.stackexchange.com/a/5235/169101) para marcar la respuesta como la correcta. –

Respuesta

65

Mientras que usted puede hacer new Image() bien, new Canvas() no es nada! Canvas Ni siquiera es una cosa, aunque HTMLCanvasElement es. No obstante, no puedes usar su constructor.

document.createElement('canvas'); es lo que quiere. Tienes que usar eso, al igual que con los divs.

44
var mycanvas = document.createElement("canvas"); 
mycanvas.id = "mycanvas"; 
document.body.appendChild(mycanvas); 
+5

¡Esta es una respuesta más completa! – EmilyJ

+0

¿por qué establecer una identificación si usted mismo creó el elemento? para el css? y, en muchos casos, desea crear un lienzo, pero no agregarlo al DOM de todos modos. –

+0

Información simple: en un documento, una identificación se debe utilizar para un solo elemento. –