私は経験豊富なJavaプログラマーですが、JavaScript / HTML5関連のものを約10年ぶりに検討しています。私はこれまでで最も簡単なものであるべきものに完全に困惑しています。
例として、何かを描き、それにイベントハンドラを追加したかっただけです。私は愚かなことをしていると確信していますが、私はすべてを検索しましたが、何も提案されていません(たとえば、この質問への回答: JavaScriptで入力するonclickプロパティを追加)は機能します。Firefox 10.0.1を使用しています。私のコードが続きます。複数のコメント行が表示され、各行の最後に何が起こったか(または何が起こらなかったか)の説明が表示されます。
ここで正しい構文は何ですか?私はおかしくなりそうだ!
<html>
<body>
<canvas id="myCanvas" width="300" height="150"/>
<script language="JavaScript">
var elem = document.getElementById('myCanvas');
// elem.onClick = alert("hello world"); - displays alert without clicking
// elem.onClick = alert('hello world'); - displays alert without clicking
// elem.onClick = "alert('hello world!')"; - does nothing, even with clicking
// elem.onClick = function() { alert('hello world!'); }; - does nothing
// elem.onClick = function() { alert("hello world!"); }; - does nothing
var context = elem.getContext('2d');
context.fillStyle = '#05EFFF';
context.fillRect(0, 0, 150, 100);
</script>
</body>
alert()
は<script>
、を呼び出す関数を定義するのではなく、で直接呼び出しているため、すぐにアラートを表示しますalert()
。の大文字のため、残りは何もしませんonclick
。
onclick
代わりに使用onClick