JavaScriptの初心者です。
笑われるかも知れません(多分そんな初歩的な事と笑われそうです)が次のようなリストで思った通りに動かず悩んでいます。
途中、window.alert を挟んでいるのはプログラムの状態を見るためです。
fnc03()の window.alert("fnc03"); までは思った通りに動くのですが、そのあとの処理に入るとエラーを起こすようで、処理が止ってしまうようです。
この原因をお教え願えませんでしょうか?
よろしくお願いします。
/************************************************
var c = document.getElementById('canvas');
var cnt = c.getContext('2d');
function init(){
window.alert("Start");
fnc01();
fnc02();
fnc03();
}
function fnc01(){
window.alert("fnc01");
}
function fnc02(){
window.alert("fnc02");
}
function fnc03(){
window.alert("fnc03");
cnt.strokeStyle = 'yellow'; //線の色
cnt.lineWidth = 5;
//円を描く
cnt.arc(50,50,20,0,2*Math.PI);
cnt.stroke();
}
*************************************************/
No.3ベストアンサー
- 回答日時:
No2です。
>fnc03() の中で宣言している場合はエラーが起こらず~
>他の関数でも使いたくて外に出した途端にエラーになりました。
であるなら、実行のタイミングの問題でしょう。
HTMLがパースされる以前にスクリプトを実行して、id="canvas"の要素が取得できないと思われます。
No2にも記しましたが、<script>タグが<canvas>タグよりも後に位置するようにしてみてください。
何度もご回答頂きありがとうございます。
お教え頂いた通りでした。
エラーメッセージも
Uncaught TypeError: Cannot read properties of null (reading 'getContext')
at my_only2.js:2:14
となっていてヌルのプロパティは存在しないということですね?
何故なのか考えているところでこのご回答を頂きました。
スクリプトの位置!これは本当に良いことを教えて頂きました。
<canvas>タグよりも後に、持ってきたらすんなりと成功しました。
本当にありがとうございました。
No.2
- 回答日時:
こんにちは
>~~までは思った通りに動くのですが、
スクリプトしかご提示がないので、どうやって実行しているのかすら不明ですけれど・・
HTMLタグ内のonload属性や、ボタンのクリック等で実行しているのでしょうか?
不明部分が多いので、以下は、全くの妄想ですが・・・
最初の1行目で失敗しているのでは?
原因としてありそうなのは、
1)<canvas id="camvas"></canvas> の要素が無いか、idが設定されていない。
2)id="canvas"の要素が複数存在する。
3)HTMLパース前に、スクリプトを実行している。
などでしょうか?
3)が一番怪しそうな気がしますが、スクリプトタグを</body>直前に置くことで、動作したりしませんか?
デベロッパーツールのエラーメッセージに基づいて今からもう一度見直しをします。
これからもどうぞよろしくお願いします。
ご回答ありがとうございました。
No.1
- 回答日時:
エラーを起こしたならば、先ずはエラー文言を調べましょう。
ほとんどの場合で原因をそのまま教えてくれます。
参考)
https://developer.chrome.com/docs/devtools/conso …
https://firefox-source-docs.mozilla.org/devtools …
https://docs.microsoft.com/ja-jp/microsoft-edge/ …
おっしゃる通りですね。
実はデベロッパーツールを使い慣れていなくて補足に上げました画像の「問題なし」に引っかかってしまいました。
ずり下げて行きますと出てきました、エラーメッセージが!
エラーがあると必ずエラーメッセージが出るのですね。
以後気を付けます。
ご回答頂きありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数でy=g(x)のgとは何の略です...
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
jQueryの :not() .not() が有効...
-
jQueryでzipを解凍読み込みする...
-
jQueryの導入について
-
Javascriptの変数がうまく渡せ...
-
yuga.js 外部リンクは別ウイン...
-
JavaScript を使ってpkゲームを...
-
同じIDで定義した要素の配列を...
-
イベントが初めの一回しか起き...
-
ASP.NETのコントロールの値をJa...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
-
なぜmatchメソッドがエラーにな...
-
モーダルダイアログウィンドウ...
-
今度は全角が0.5で認識されてし...
-
パス付きサイトのjavascript解析
-
JavaScript window.openで開く...
-
class指定したHTML要素の背景色...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数でy=g(x)のgとは何の略です...
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
jQueryの :not() .not() が有効...
-
処理前の「お待ちください」
-
jslintのエラーについて質問
-
XMLHttpRequestでキャッシュを...
-
クリックすると上に開くアコー...
-
コードをスマートにさせたい。
-
関数名をテキストから読み込む...
-
jqueryの変数を関数の外に出す方法
-
シューティングゲームの作り方
-
要素名がスペースを含む場合のj...
-
getElementByIdを使用したグロ...
-
XMLHttpRequestオブジェクトが...
-
jQueryが読み込めない
-
Ajaxでデータベース(PostgreSQL)
-
setTimeoutで、止まらない
-
jQueryでzipを解凍読み込みする...
-
CDの曲をケータイのSDに移す
おすすめ情報
この「問題なし」に引っかかてしまいました。
言葉足らずの質問で申し訳ありませんでした。
冒頭の2行は元々 fnc03() の中にあったものです。
fnc03() の中で宣言している場合はエラーが起こらず、キャンバスに円が描かれ期待通りに動いたのですが、他の関数でも使いたくて外に出した途端にエラーになりました。