![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_13.png?8acaa2e)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>イベント情報の取得</title>
</head>
<body>
<script type="text/javascript">
<!--
// ページのロード時に呼び出される関数initをセット
window.onload=init;
// ページのロード時に呼び出される関数
function init(){
// onclickイベントハンドラを定義
document.getElementById("txt").onclick=msg;
}
// onclickイベントハンドラ関数
function msg(evt){
// W3C DOMとIEの両方のイベントオブジェクトに対応
evt = (evt) ? evt : ((event) ? event : null);
alert(evt.type+"されました");
}
//-->
</script>
<div id="txt">クリックしてください</div>
</body>
</html>
上記のコードで【MozillaやOperaなどのブラウザでは、イベントハンドラ関数を設定した場合にも、関数の引数としてイベントオブジェクトが渡される】とのことですが、イベントハンドラ関数msgに渡されているevt【function msg(evt){】はいきなり出て、何を意味しているのかよくわかりません。
このコードを見て推測できる方、アドバイスをお願い致します。
No.2ベストアンサー
- 回答日時:
>function msg(evt)
説明どおり。MozillaやOperaではイベントに関する各種情報=イベントオブジェクトを引数として渡してきます、それを受取るべくevtという名前の器(変数)を用意します。もちろん関数内での宣言ですから名前は何でも(evtでなくても)かまいません。
渡されたイベントオブジェクトを参照する事でイベントの種類や発生元(クリックならクリックしたオブジェクト)等々の情報が得られます。
>evt = (evt) ? evt : ((event) ? event : null);
IEではイベントハンドラの引数は空です。代わりにwindow.eventというグローバルオブジェクトにイベント情報が格納されています。
引数(evt)が得られてなければevtという名前でeventを参照できるようにします。
これでevt.typeでIEでもMozillaでも同じ変数で発生したイベントのタイプ(この例では"click"です)を参照できるようになります。
なお、イベントオブジェクト内のプロパティにも違いがあるので、これだけでブラウザの差異が完全に吸収されるわけではありません。
No.1
- 回答日時:
>evt = (evt) ? evt : ((event) ? event : null);
これの少し前を参照
>function msg(evt){
ただの変数名
function での構文による括弧内の名前が何であるのか、もう一度文法を確認したら良いんじゃない?
いきなりもなにもfunctionっていきなり出てくるものだし。
少しくらい流れを追おうとしようよ。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
event.srcElementの動的設定
-
CSSのクラスを動的に変更 classで
-
jquery か javascript で json ...
-
「リンク」と「ハイパーリンク...
-
JavaScript 日数計算の関数で演...
-
JSの「document.getElementById...
-
evtとは
-
Javascript 全角カナ+半角スペ...
-
クリックすると下に説明文が出...
-
エクセル 半角英数6文字以上 ...
-
初心者です。gulpでコンパイル...
-
VBA ステータスバー DoEvents
-
JAVAスクリプトだけで、ブラウ...
-
ajax 通信 iisの設定?
-
htmlのfileタグに自動で値を入...
-
JavaScriptに関する質問です。 ...
-
JavaScriptでIEのウィンドウを...
-
テキストファイルの更新日時を取得
-
至急お願いします!javascript:...
-
「終了していない文字列型の定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
エクセル2010のvbaについて
-
画面間でのJavaScrip...
-
クラス デフォルトプロパティの...
-
evtとは
-
javaScriptでグローバル変数に...
-
PHPで定義した変数を引数として...
-
jquery か javascript で json ...
-
文字を移動させその位置を表示...
-
JavascriptのDOMについて
-
【javascript】プロパティ?オ...
-
for each for in
-
フォルダ内のファイル名を取得...
-
CSSのクラスを動的に変更 classで
-
イベントリスナに登録される fu...
-
jQueryで、listの要素数を取得...
-
javascript 親オブジェクトと子...
-
VBSを学ぶ前に、、、
-
Ajaxのプログラムをオブジェク...
おすすめ情報