2011-11-30 14 views
32

Canvas要素をコンストラクタから作成して、このような関数を作成できるようにしたいと考えています。 CanvasコンストラクタからHTML5 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; 
} 

私はHTML5は、コンストラクタから要素を作成することはできません「キャンバスが定義されていない」と言っラインVARキャンバス=新しいキャンバス()でエラーが出ますか?またはコンストラクタに渡す必要のあるパラメータがあるかどうかを確認します。どんなアイデアも素晴らしいだろう。

+3

Canvasコンストラクタはありません。 ''要素を新しいものにしたい場合は、 'var canvas = document.createElement(" canvas ");'を使います。 * PS。 [この回答](http://stackoverflow.com/a/7858231/938089)あなたの以前の質問を解決するようです。 [回答を受け入れる](http://meta.stackexchange.com/a/5235/169101)機能を使用して、回答を正しいものとしてマークします。 –

答えて

65

new Image()でも問題ありませんが、new Canvas()は問題ではありません。 Canvasでも、事はないですが、HTMLCanvasElementですが。それにもかかわらず、そのコンストラクタは使用できません。

document.createElement('canvas');です。 divと同じように、それを使わなければなりません。

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

これはより完全な答えです! – EmilyJ

+0

自分で要素を作成した場合はなぜidを設定しますか? CSSのために?とにかくキャンバスを作成したいが、それをDOMに追加したくない場合が多い。 –

+0

簡単な情報:ドキュメントでは、IDは1つの要素に対してのみ使用する必要があります。 –

関連する問題