2011-11-30 18 views
32

Vorrei poter creare elementi Canvas dal costruttore in modo da poter eseguire una funzione come questa.l'elemento Canvas HTML5 può essere creato dal costruttore 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; 
} 

ottengo un errore sulla linea di var = new tela Canvas() dicendo che 'tela di canapa non è definito' non HTML5 non consente la creazione di elementi dal costruttore? o ci sono parametri che devo passare al costruttore. Qualunque idea sarebbe apprezzata.

+3

Non esiste un costruttore di Canvas. Se vuoi ceare un nuovo elemento '', usa' var canvas = document.createElement ("canvas"); '. * PS. [Questa risposta] (http://stackoverflow.com/a/7858231/938089) sembra risolvere la tua domanda precedente. Utilizzare la funzione [Accetta risposta] (http://meta.stackexchange.com/a/5235/169101) per contrassegnare la risposta come quella giusta. –

risposta

65

Mentre si può fare new Image() bene, new Canvas() non è una cosa! Canvas Non è nemmeno una cosa, anche se lo è HTMLCanvasElement. Tuttavia non è possibile utilizzare il suo costruttore.

document.createElement('canvas'); è quello che vuoi. Devi usarlo, proprio come con le div.

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

Questa è una risposta più completa! – EmilyJ

+0

perché impostare un id se hai creato tu stesso l'elemento? per il css? e, in molti casi, si desidera creare una tela, ma non aggiungerla comunque al DOM. –

+0

Informazioni semplici: in un documento, è necessario utilizzare un ID per un solo elemento. –