1、在html中,按钮有双击事件,单击事件,但没有右击事件,js中却有关于改变鼠标右击的功能,那这样,可以配合鼠标onmouseover事件将鼠标设置右击事件。当然此处不止可以在button里设置,也可以在别的标签里设置,在这里以button为例。
<input type="button" id="b1" onmouseover="right(this.id)"/>
在js中:
<script>
function right(id){
document.getElementById(id).oncontextmenu=function(){
//在这里可以写你要定义的右击事件
alert("这是一个右击事件");
return false;//返回值为false,避免鼠标原有的右击事件。
}
}
</script>
2、还有一种添加按钮添加右击的方法:用鼠标的onmousedown()方法,获取点击鼠标的button值,,右击时button值为2,左击为1
jsp中:<input type="button" id="b1" onmousedown="click1(event)"/>
js中:
<script>
function click1(event){
if(event.button==2){
alert("右击事件");
}if(event.button==1){
alert("左击事件");
}
}
</script>
浏览器有的不兼容,大部分浏览器兼容,一般用IE测试就可以。
3、根据第一条,咱们扩展一下,可以将右击事件改变原有的菜单。
思路:将原有的右击菜单改变成自己的菜单,先定义一个隐藏域,或者是一个网页。如果定义隐藏域,点击右键,隐藏域出现,并且坐标为鼠标跟滚动条坐标之和。点击左键时,隐藏菜单
隐藏域如下:
<span id="contextmenu" style="border:1px solid #666666;background:#eeeeee;width:55px;padding:5px;display:none;position:absolute">
<div>
<div>菜单1</div>
<div>菜单2</div>
<div>菜单3</div>
<div>菜单4</div>
<div>菜单5</div>
<div>菜单6</div>
</div>
</span>
js如下:
<script type="text/javascript">
document.oncontextmenu=function (){
contextmenu.style.posLeft= document.body.scrollLeft+event.x; //滚动条坐标+鼠标坐标
contextmenu.style.posTop= document.body.scrollTop+event.y; //纵坐标同上
contextmenu.style.display="inline" ;//右击后id为contextmenu的对象设置为可见
return false ;
}
document.
//如果 contextmenu 层非当前焦点对象
if(document.activeElement!=contextmenu){
contextmenu.style.display="none";
} //隐藏 contextmenu 层
}
</script>
如果想用window.open();定义菜单也可以,原理都差不多,再次就不多说了。
进***流: 178483774