2011-11-30 24 views
32

Tuval öğelerini yapıcıdan yapmak istiyorum, böylece böyle bir işlev yapabilirim. HTML5 Canvas öğesi, Tuval kurucusundan oluşturulabilir

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; 
} 

ben HTML5 yapıcı öğeleri oluşturmaya izin vermiyor 'Tuval tanımlanmamış' diyerek hat var tuval = new Tuval() bir hata alıyorum? veya kurucuya geçmem gereken parametreler var. Herhangi bir fikir harika olurdu.

+3

Tuval yapımcısı yok. Yeni bir '' elemanını silmek istiyorsanız, “var canvas = document.createElement” (“canvas”); 'seçeneğini kullanın. * PS. [Bu cevap] (http://stackoverflow.com/a/7858231/938089) önceki sorunuzu çözüyor görünüyor. Cevabı doğru olanı işaretlemek için [Yanıtı kabul et] (http://meta.stackexchange.com/a/5235/169101) özelliğini kullanın. –

cevap

65

new Image() ürününü düzgün yapabilmeniz için new Canvas() bir şey değildir! Canvas Bir şey bile yok, HTMLCanvasElement ise. Bununla birlikte yapıcısını kullanamazsınız.

document.createElement('canvas'); ne istiyor. Bunu kullanmak zorundasınız, tıpkı div'larda olduğu gibi.

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

Bu daha eksiksiz bir cevaptır! – EmilyJ

+0

Öğeyi kendiniz oluşturduysanız neden bir kimlik belirleyin? css için? ve çoğu durumda bir tuval oluşturmak istersiniz, ancak yine de DOM'a eklemezsiniz. –

+0

Basit bilgi: bir belgede, yalnızca bir öğe için bir ID kullanılmalıdır. –