1.contextmenu事件:用以表示何时应该显示上下文菜单,以便取消默认的上下文菜单而提供自定义的菜单。
这里的div元素包含一个自定义的上下文菜单,ul元素作为自定义上下文菜单,并且在初始时是隐藏的.实现这个例子的JavaScript代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/32f8f441f3e0cc4c2b78337a1438bc5f.jpeg)
这里的div元素包含一个自定义的上下文菜单,ul元素作为自定义上下文菜单,并且在初始时是隐藏的.实现这个例子的JavaScript代码如下:
var div =document.getElementById_x_x_x('div');
div.addEventListener('contextmenu', function(event){
event.preventDefault(); //取消默认行为
var menu = document.getElementById_x_x_x('menu');
menu.style.left = event.clientX + 'px';
menu.style.top = event.clientY + 'px';
menu.style.visibility = 'visible';
},false);
document.addEventListener('click', function(event){
var menu = document.getElementById_x_x_x('menu');
menu.style.visibility = 'hidden';
},false);
在这个例子中,我们为div元素添加了contextmenu事件的处理程序。这个事件处理程序首先取消默认行为
为,以保证不会显示浏览器默认的上下文菜单,然后再根据event对象的clientX和clientY属性的值,来确定放置ul元素的位置。最后一步是通过将visibility属性设置为"visible"来显示自定义上下文菜单。另外,还为document添加了一个onclick事件处理程序,以便用户能够通过鼠标单击来隐藏菜单。现在,只要为自定义的上下文菜单添加一些css样式,就可以得到非常棒的效果。
这个例子中的添加事件推荐使用跨浏览器的方式来实现。
2.beforeunload:在浏览器卸载页面之前,询问用户是否真的要关闭页面,还是希望继续留下来。
window.addEventListener('beforeunload', function(event){
//关闭页面前确认是否关闭
var message= 'Are you leave?';
event.returnValue =message; //针对IE、Firefox
returnmessage; //针对Safari、Chrome
}, false);
div.addEventListener('contextmenu', function(event){
event.preventDefault(); //取消默认行为
var menu = document.getElementById_x_x_x('menu');
menu.style.left = event.clientX + 'px';
menu.style.top = event.clientY + 'px';
menu.style.visibility = 'visible';
},false);
document.addEventListener('click', function(event){
var menu = document.getElementById_x_x_x('menu');
menu.style.visibility = 'hidden';
},false);
在这个例子中,我们为div元素添加了contextmenu事件的处理程序。这个事件处理程序首先取消默认行为
为,以保证不会显示浏览器默认的上下文菜单,然后再根据event对象的clientX和clientY属性的值,来确定放置ul元素的位置。最后一步是通过将visibility属性设置为"visible"来显示自定义上下文菜单。另外,还为document添加了一个onclick事件处理程序,以便用户能够通过鼠标单击来隐藏菜单。现在,只要为自定义的上下文菜单添加一些css样式,就可以得到非常棒的效果。
这个例子中的添加事件推荐使用跨浏览器的方式来实现。
2.beforeunload:在浏览器卸载页面之前,询问用户是否真的要关闭页面,还是希望继续留下来。
window.addEventListener('beforeunload', function(event){
//关闭页面前确认是否关闭
var message= 'Are you leave?';
event.returnValue =message; //针对IE、Firefox
returnmessage; //针对Safari、Chrome
}, false);