2011-11-30 7 views
32

से HTML5 कैनवास तत्व बनाया जा सकता है, मैं कन्वेयर तत्वों को कन्स्ट्रक्टर से बनाने में सक्षम होना चाहता हूं ताकि मैं इस तरह का कार्य कर सकूं।कैनवास कन्स्ट्रक्टर

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

मैं पंक्ति var कैनवास = नया कैनवास() कह रही है कि 'कैनवास अपरिभाषित है' एचटीएमएल 5 निर्माता से तत्वों बनाने की अनुमति नहीं है पर कोई त्रुटि मिलती है? या ऐसे पैरामीटर हैं जिन्हें मुझे कन्स्ट्रक्टर को पास करने की आवश्यकता है। सभी विचारों का स्वागत है।

+3

कोई कैनवास कन्स्ट्रक्टर नहीं है। यदि आप एक नया ' 'तत्व छतना चाहते हैं, तो' var canvas = document.createElement (" canvas ") का उपयोग करें;'। * पी एस। [यह उत्तर] (http://stackoverflow.com/a/7858231/938089) आपके पिछले प्रश्न को हल करने लगता है। उत्तर को सही के रूप में चिह्नित करने के लिए [स्वीकार करें उत्तर] (http://meta.stackexchange.com/a/5235/169101) सुविधा का उपयोग करें। –

उत्तर

65

जबकि आप new Image() कर सकते हैं ठीक है, new Canvas() कोई बात नहीं है! Canvas एक बात भी नहीं है, हालांकि HTMLCanvasElement है। फिर भी आप इसके कन्स्ट्रक्टर का उपयोग नहीं कर सकते हैं।

document.createElement('canvas'); वह है जो आप चाहते हैं। आपको divs की तरह ही इसका उपयोग करना होगा।

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

यह अधिक पूरा जवाब है! – EmilyJ

+0

यदि आपने तत्व स्वयं बनाया है तो एक आईडी क्यों सेट करें? सीएसएस के लिए? और, कई मामलों में आप एक कैनवास बनाना चाहते हैं, लेकिन इसे किसी भी तरह से डोम में नहीं जोड़ना चाहते हैं। –

+0

सरल जानकारी: किसी दस्तावेज़ में, केवल एक तत्व के लिए एक आईडी का उपयोग किया जाना चाहिए। –