• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript イベント属性)

JavaScriptのイベント属性とは?

このQ&Aのポイント
  • JavaScriptには、イベント属性としてondblclickや、onkeydown等のイベント属性がありますが、その情報はどこで調べることができるのでしょうか。
  • W3CのDOM HTML内でイベント属性の情報を見つけることができなかったため、onclickやondblclick、onkeypressなどのイベント属性の情報を調べるためには、W3CのHP以外の方法を利用する必要があります。
  • JavaScriptのイベント属性については、W3CのHPではなく、他のリソースやドキュメントを参考にすることが推奨されています。具体的な情報の取得方法については、専門の書籍やオンラインのドキュメントを利用することが有益です。

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.1

HTML の on* 属性を見るなら、HTML4, HTML Standard (HTML5) 等の仕様書を読んでみてください。 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/scripts.html#htmlrefs http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handlers-on-elements,-document-objects,-and-window-objects # 最終的には DOM L2 Events や DOM L3 Events に行き着くので調べる箇所が間違っていたわけではないと思います。

kureakai
質問者

お礼

# 最終的には DOM L2 Events や DOM L3 Events に行き着くので調べる箇所が間違っていたわけではないと思います。 間違いではなかったのですね。 安心しました。 そして、アドレスありがとうございます。 探していたものそのものでした。 情報ありがとうございました。

その他の回答 (3)

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.4

To: No.3 > oncopy、onpaste 2006 年に Clipboard API として W3C 草案が出ていますよ。Drag and Drop(ondragstart その他)との兼ね合いもあって、当時の実装(IE5+ を含む)を整理した表もあったように記憶していましたが、今確認したらありませんね。どこだっただろう。 キーイベントについては長大な実装対照表も作ってました。WHATWG のメンバーが関わっているのもありますが、ブラウザ関連の仕様は後方互換性に相当気を遣っていますよ。『仕様同士で矛盾している』ではなく、それぞれの仕様に書かれているはずの「適合基準」てのを確認して下さい。それぞれの仕様には目的があるのですから。 ブラウザは『古い仕様』をサポートし続けねばなりませんので、『古い仕様のもとで作られたサイト』も長い期間使えるはずです。Web では何よりも互換性と相互運用性が至上命題ですので。にもかかわらず、『今まで動いていたプログラムが、最新ブラウザで動かなくなる』のは、どちらかと言えばプログラム側の原因が大きいです。

kureakai
質問者

お礼

情報ありがとうございます。 >キーイベントについては長大な実装対照表も作ってました。WHATWG のメンバーが関わっているのもありますが、ブラウザ関連の仕様は後方互換性に相当気を遣っていますよ。 そうなのですね。 色々調べてみます。

回答No.3

on~の規定はここです。 http://www.w3.org/TR/html401/index/attributes.html それを引き継いで(追加して)、ここに一覧があります。(下にスクロールしてください) http://www.w3.org/TR/html5/webappapis.html#event-handlers >onclick、ondblclick、onkeypress等のイベント属性の情報を調べるために、 >W3CのHPを見るということ自体が間違っているのでしょうか? 間違ってはいないと思います。 ただ、解説ではなく「仕様」ですから、非常に読みづらいと思います。 また、ブラウザ依存の属性などは書かれていません。 たとえばSafariにはoncopy、onpasteなどのイベントハンドラがありますが、W3C内にはどこにも書かれていません。 こういうのはブラウザベンダーのサイトの情報を見るしかないです。 (数日前の「JavaScriptのapiは、、、」というスレッドを見てください。) W3C内でも複雑奇怪を極めてますね。 たった一言で「JavaScript」でまとめていますが、その中には十種類以上の仕様が組み込まれていて、 仕様同士で矛盾している物も少なからずあります。 (ある仕様では「このキーワードはこの動作をする」となっていても、別の仕様では違う動作を規定している、 ある仕様では「この記述は必須」となっていても、別の仕様では不要、または非推奨となっているなど) 通常は「新しい方を採用する」というところですが、そこはウェブの世界、古い仕様のもとで作られたサイト(新しい仕様が作られる前に作られたサイト)では、古い仕様の通りに動かないときっちり動きません。 そこで、今まで動いていたプログラムが、最新ブラウザで動かなくなるという問題になるわけですが、 これが、IE6やFirefox3.6が未だに5%以上の利用率がある理由です。

kureakai
質問者

お礼

情報ありがとうございます。 >on~の規定はここです。 http://www.w3.org/TR/html401/index/attributes.html それを引き継いで(追加して)、ここに一覧があります。(下にスクロールしてください) http://www.w3.org/TR/html5/webappapis.html#event-handlers アドレスありがとうございます。 早速見ていることにします。 大変助かりました。

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.2

つまり、非公式だということでしょう ;-) ……なんて。 そもそも、NN2-4 まで、イベントプロパティを持つのは window、document、リンク要素およびフォーム要素に限られていました。全要素にイベントプロパティを持たせたのは IE3 です。 複数のイベントハンドラを登録できる attachEvent() が IE5 でサポート、DOM2 Events の addEventListener() が NN6 でサポート。この時点で、まだギリギリ 20 世紀です。新規のスクリプトはこちらの仕組みに移行させれば、古いイベントプロパティについては標準化しないまま(古いコードのために)残しても、特に影響ないはず……。 それから今に至るまで、未だにイベントプロパティが使われ続けてるのが、どちらかと言えば異常事態なのです。 まあ、そうも言ってられないので、HTML(旧 HTML5)規定がイベントプロパティの標準化に着手しました。この際、それまで標準化されていなかった window などのレガシーオブジェクトも公式に定義されることになりました。つまり、「現在までに存在するもの」を一通り整理する、という方向に舵が切られたわけです。それに伴い、現在では XMLHttpRequest や Web Worker などにもイベントプロパティが生やされるようになりました。 なお、ここでは意図的に HTML のイベント属性と、いわゆる DOM Level 0 のイベントプロパティを言い分けています。私は、イベントプロパティは使うべきでないが、イベント属性の方は場合によって使った方が良いと考えています。少なくとも、addEventListener() よりもイベント属性の方が「マシ」な場面がいくつかあります。

kureakai
質問者

お礼

色々歴史があるのですね・・・。 >それから今に至るまで、未だにイベントプロパティが使われ続けてるのが、どちらかと言えば異常事態なのです。 ご意見ありがとうございます。 覚えておきたいと思います。 情報ありがとうございましたた。

関連するQ&A