* onclick 属性 (HTML, XHTML 1)
[1] [[HTML]] のほとんどの要素で用意されている
[DFN[[CODE(HTMLa)[onclick]] 属性]]は、
[RUBYB[指示装置] [pointing device]]のボタンが[[要素]]の上で[[かちっ]]された時に発生する[[事象]]に関する[[内在事象]]属性です。
[2] 仕様書:
- [[HTML 4]]
-- [CODE(HTMLa)[onclick]] 属性
** 代替
[3] 内在事象属性は[[表現と構造の分離]]の原則に反するので、
好ましくないと考える人もいます。また、 [[DOM 0]]
に基づく古い設計です。
代わりに、 [CODE(HTMLe)[[[script]]]] 要素などにより関連付けたスクリプト内で
[[DOM 2]] 以上の[[事象]]に関するメソッド等が利用できます。
DOM 水準2 や DOM 水準 3 はこの属性に対応する
DOM の事象 [CODE(DOM)[[[click]]]] を用意しています。
[[#comment]]
** 属性値
[4] この属性の値は [CODE(SGML)[%[[Script]]]] です。 [[SGML]]
的には [CODE(SGML)[[[CDATA]]]] です。[[スクリプト言語]]は、
[CODE(HTTP)[[[Content-Script-Type]]]] によります。
[5] この属性は省略可能です。
[[#comment]]
** 例
[7]
[PRE(HTML deprecated example code)[
使用ライブラリ:openex.js
]PRE]
[CODE(HTMLe)[[[a]]]] 要素の[[活性化]]時の[[既定動作]]は[[リンク]]の[[探索]]ですが、
[[Webブラウザ]]の操作により明示的に[[ファイル]]として[[保存]]させるために、
[[偽]]を返して[[既定動作]]を取消しています。
[[リンク]]を[[右クリック]]したら[[ファイル]]として[[保存]]を選べるという特定の
[[Webブラウザ]]の挙動に激しく依存したこのような記述は好ましくありません。
出典:
(無題、2002年11月付け)
[[#comment]]
** 関連
[6] この属性に対応する DOM の事象は [CODE(DOM)[[[click]]]]
です。そちらもあわせてごらんください。
[[#comment]]
** メモ
[12]
[CITE[onclick 属性問題について - IT戦記]] ([CODE[2008-05-24 20:47:14 +09:00]] 版)
[13] [CITE@en-GB-x-Hixie[Web Forms 2.0]] ([TIME[2009-01-05 20:07:15 +09:00]] 版)
[14] [[DSiブラウザー]]では [CODE(DOM絵)@en[[[click]]]] をキャンセルするとフォーカスが出なくなるようです。また、フォーカスはイベント終了後に表示されるので、 onclick に時間がかかると表示までに時間がかかります。