onclick属性
属性名 | バージョン | 属性値 | 既定値 | 備考 |
---|---|---|---|---|
onclick | 4.0, X1.0, X1.1 | %Script; | #IMPLIED | a pointer button was clicked |
この属性が属するグループ …… %events;
onclickの解説
onclick属性はイベントハンドラの一つです。その属性が指定された要素がクリックされたときにイベントが発生し、属性値の内容をスクリプトとして実行します。たとえば、
<input type="text" value="" onclick="alert('XSS')" />
などという input 要素があった場合、入力欄をクリックするとダイアログがでて「XSS」と表示されることが期待されます。
この属性が「クリック」にしか反応しないことに注意してください。クリックというのはポインティングデバイスのボタンを押して放す動作ですが、そもそもポインティングデバイスがない環境では、どうやってもそのような操作をすることができません。ナビゲーションに必須の機能を onclick だけで実装してしまうと、環境によっては利用できなくなってしまう可能性があります。そのため onkeypress属性との併用が推奨される……のですが、onkeypress 属性を指定すると tabキーで反応してしまって大変なことになるブラウザも存在しており、頭が痛いところです。
また当然ですが、onclick で指定したスクリプトはスクリプト無効環境では実行されません。そもそも onclick に依存しない作りが望ましいと言えるでしょう。
※なお、一部のテレビに搭載されているブラウザでは、リモコンの「決定」ボタンを押すと何故か onkeypress ではなく onclick が反応したりするようです。もう何が何だか。
- 「onclick属性」にコメントを書く