[解決済み] キャンバスを使用しているため、null のプロパティ 'getContext' を読み取ることができません。
2022-02-07 17:33:45
質問
次のようなエラーが発生します。
Uncaught TypeError: Cannot read property 'getContext' of null
で、ファイル中の重要な部分は... game.jsが下のディレクトリにあるので、canvasが見つからないのではと思うのですが?どうすればいいのでしょうか?
./index.htmlを参照してください。
<canvas id="canvas" width="640" height="480"></canvas>
./javascript/game.js:
var Grid = function(width, height) {
...
this.draw = function() {
var canvas = document.getElementById("canvas");
if(canvas.getContext) {
var context = canvas.getContext("2d");
for(var i = 0; i < width; i++) {
for(var j = 0; j < height; j++) {
if(isLive(i, j)) {
context.fillStyle = "lightblue";
}
else {
context.fillStyle = "yellowgreen";
}
context.fillRect(i*15, j*15, 14, 14);
}
}
}
}
}
解決方法は?
htmlが読み込まれる前にjsが実行されていることが問題なのでしょう。
jqueryを使用している場合、document ready関数でコードをラップすることができます。
$(function() {
var Grid = function(width, height) {
// codes...
}
});
または、単純にjsを
<canvas>
.
関連
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み] HTML5/Canvas/JavaScriptを使用してブラウザ内のスクリーンショットを撮影する
-
[解決済み] 変数を使用してオブジェクトのプロパティに動的にアクセスする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない