<INPUT TYPE="button" VALUE="押してね☆" ONCLICK="alert(event.type)">
<input type="button" name="btn1" value=押してね☆" onclick'test2(e);'>こんなものを返されてどうするんだという話もありますが、 とりあえず name プロパティを拾っておきましょう。
function test2(e) {
if(document.all) //IE4 or later
alert(e.srcElement.name);
else if(document.layers) { //ネスケ4
var str = String(e.target);
str.match(/name=\"([^\"]+)\"/); //正規表現で拾う
alert(RegExp.$1);
}
}
<INPUT TYPE="text" ONKEYDOWN="alert(event.keyCode); return false">
上のテキストボックスをフォーカスして何かキーを押してください。
<INPUT TYPE="text" ONKEYPRESS="alert(event.keyCode); return false">
onkeypress
では基本的に入力されようとしている文字のコードを返します。ネスケ では which が押されたキーのコードを返します。
<INPUT TYPE="text" ONKEYDOWN="alert(event.which); return false">
ネスケでは IE の onkeypress
の場合と同じように入力されようとしている文字のコードを返します。
ネスケでは modifiers プロパティを用います。 これは Alt などのキーが押された場合、Event.ALT_MASK、 Event.ALT_MASK、Event.ALT_MASK のフラグが立つので、例えば Alt キーが押されたか判別するには
(e.modifiers & Event.ALT_MASK) != 0が true なら Alt キーが押されていたことになります。
function test3(e) {
if(document.all) //IE4 or later
alert("Alt:" + e.altKey + " Ctrl:" + e.ctrlKey
+ " Shift:" + e.shiftKey);
else if(document.layers) //ネスケ4
alert("Alt:" + ((e.modifiers & Event.ALT_MASK) != 0)
+ " Ctrl:" + ((e.modifiers & Event.ALT_MASK) != 0)
+ " Shift:" + ((e.modifiers & Event.ALT_MASK) != 0));
}
上のボタンを押してください。
そのとき同時に Alt キーなどが押されていたかどうかを表示します。
| button | value |
| default | 0 |
| left | 1 |
| right | 2 |
| middle | 4 |
複数のボタンが同時に押された場合、返ってくる値は足しあわせになるらしいです。
<DIV STYLE="color:darkorange" ONMOUSEDOWN="alert(event.button); return false">
押してね☆
</DIV>
上の「押してね☆」をクリックすると押したボタンに応じた値が表示されます。
上では onmousedown を拾っていますが、
onclick ではうまくいかないようです。
onmouseup ではいちおう値が表示されます。
ネスケでは which プロパティで押されたボタンを検出します。
| button | value |
| default | 0 |
| left | 1 |
| right | 2 |
| middle | 3 |
function test4() {
if(document.onclick)
document.onclick = "";
else
document.onclick = test5;
}
function test5(e) {
alert(e.which);
return false;
}
下のボタンを押すと test4 が走り、document が test5 に結びつきます。
適当なところを押すと test5 が走ります。
function test6() {
if(document.onclick)
document.onclick = "";
else
document.onclick = test7;
}
function test7(e) {
if(document.all)
alert("(" + event.screenX + "," + event.screenY + ")");
else if(document.layers)
alert("(" + e.screenX + "," + e.screenY + ")");
return false;
}
下のボタンを押すと test6 が走り、document が test7 に結びつきます。
適当なところを押すと test7 が走り座標が表示されます。
これに対し、IE の clientX、
ネスケの pageX などはページ内での座標を返します。
フレームがあれば個々のフレーム内での座標となります。
function test8() {
if(document.onclick)
document.onclick = "";
else
document.onclick = test9;
}
function test9(e) {
if(document.all)
alert("(" + event.clientX + "," + event.clientY + ")");
else if(document.layers)
alert("(" + e.pageX + "," + e.pageY + ")");
return false;
}
下のボタンを押すと test8 が走り、document が test9 に結びつきます。
適当なところを押すと test9 が走り座標が表示されます。
IE の x、
ネスケの x または layerX
などはたぶんネスケで LAYER と解釈できる DIV 内にある場合は
そのDIV内での座標を返します。
<DIV STYLE="position:relative;color:darkorange" ONMOUSEDOWN="alert(event.y); return false"> 押してね☆ </DIV>
上の「押してね☆」を押すとその DIV 内での y座標が表示されます。
ネスケではうまく動きません。
その他の場合 x などは
clientX などと同じです。