JavaScript:ブラウザ毎の右クリック処理
JavaScript・XHTML・CSS (43 items)
2006年04月10日
ブラウザ毎、といってもWindowsXP環境における”IE6”、”FireFox1.5.0.1”、”Opera8.54”という3つのブラウザ、これらの右クリックによる動作について。
マウスクリック時(通常の左クリック)に何か処理(処理1)をしたい場合、最近では下記のように記述する例が多いのではないでしょうか。
マウスクリック時(通常の左クリック)に何か処理(処理1)をしたい場合、最近では下記のように記述する例が多いのではないでしょうか。
document.onclick = function(e){
・・・処理1・・・
}上記記述は、3つのブラウザ全てについて有効になります。
では、右クリック時に何か処理(処理2)をしたい場合は・・、
上記”onclick”時の記述を、”oncontextmenu”時にと記述すれば可能です。
但し”oncontextmenu”は、”IE”と”FireFox”について有効であり、Operaでは有効ではありません。(”oncontextmenu”はW3Cの仕様でない事から、ブラウザ毎に仕様が異なるようです)
それとFireFoxですが、右クリック時、”oncontextmenu”と共に”onclick”も有効になるようです。すなわち、上記でいえば「右クリック時には処理1と処理2の両方が処理される」事になりますので注意しましょう。
で、結局上記コードで「左クリック時には処理1を、右クリック時に処理2を行う」といった動作を行えるのは、IEのみのようです。
・・といった具合に、右クリック一つを取ってもブラウザ毎に動作が異なる、、、辛い所です。。。
では、右クリック時に何か処理(処理2)をしたい場合は・・、
上記”onclick”時の記述を、”oncontextmenu”時にと記述すれば可能です。
document.oncontextmenu = function(e){
・・・処理2・・・
}但し”oncontextmenu”は、”IE”と”FireFox”について有効であり、Operaでは有効ではありません。(”oncontextmenu”はW3Cの仕様でない事から、ブラウザ毎に仕様が異なるようです)
それとFireFoxですが、右クリック時、”oncontextmenu”と共に”onclick”も有効になるようです。すなわち、上記でいえば「右クリック時には処理1と処理2の両方が処理される」事になりますので注意しましょう。
で、結局上記コードで「左クリック時には処理1を、右クリック時に処理2を行う」といった動作を行えるのは、IEのみのようです。
・・といった具合に、右クリック一つを取ってもブラウザ毎に動作が異なる、、、辛い所です。。。
前の記事 次の記事