浏览器上实现右键菜单的方法
2019-10-25 06:30:53来源:爱站网 阅读 ()
?最近有程序猿给小编提出如何在浏览器中实现类似于应用程序的右键菜单的效果,小编在尝试一番后,发现实现方法并不是很难,那么现在就让小编为大家介绍浏览器上实现右键菜单的方法。
首先要解决的问题是在怎样的情况鼠标右击不会出现IE的菜单。思路可以有两个,一个是将焦点移开,还有一个就是点在网页的什么地方不会出现右键菜单,而且会响应鼠标点击消息。(哈哈,废话一大堆。思路吗?总要多想想才有的)?
想了想,?总结出的下面几种方法
1、响应右键消息出一个ALERT框(还有点新鲜的东东没有)。?
2、响应右键消息后弹出一个新的窗口。将初始页的的焦点移开。?
可是经过试验后发现只有窗口出现在鼠标右击的位置时,才会没有浏览器的右键菜单出现。?
3、响应右键消息后弹出一个HTML的对话框。即使用showModalDialog来开启一个HTML对话框。使用这种方式可以让右键菜单不会出现。但是有一个问题是使用使用showModalDialog开启的对话框不会向使用Window.Open开启的对话框一样可以移出屏幕所在的范围。就是说始终可以看见有一个对话框出现在屏幕上。这条路也不能走了。?
4、呵呵,最后一招了,唯鱼偶尔发现在Select上进行鼠标右击或左击都不会有反应。那么如果每次鼠标都点在Select上,不就不会出现浏览器的右键菜单了。?
下面就是一个例子,感兴趣的可以把下面的拷贝成Test.html,就可以看看效果了。
<?HTML>?
<?title>VFish?Test<?/title>?
<?script>?
var?x,?y;?
document.onmousemove=moveMouse?
document.onmousedown=click?
function?moveMouse()?
{?
Layer1.style.left?=?event.clientX?-?2;?
Layer1.style.top?=?event.clientY?-?2;?
}?
function?click()?
{?
if?(event.button==2)?
{?
x?=?event.clientX;?
y?=?event.clientY;?
Layer1.style.visibility="";?
window.setTimeout("showMenu();",?500);?
}?
else?
{?
HiddenPop();?
PopMenu.style.visibility='hidden';?
}?
}?
function?showMenu()?
{?
PopMenu.style.left?=?x-?2;?
PopMenu.style.top?=?y-?2;?
PopMenu.style.visibility="";?
HiddenPop();?
}?
function?HiddenPop()?
{?
Layer1.style.visibility='hidden';?
}?
<?/script>?
<?BODY>?
在窗口中右击一下看看出什么:)?
<?div?id=Layer1?style="position:absolute;?width:4px;?height:4px;?z-index:3;?visibility:?hidden">?
<?select?style="width:4"><?/select>?
<?/div>?
<?div?id=PopMenu?style="position:absolute;?width:100px;?height:100px;?z-index:1;?visibility:?hidden">?
<?table?border=2?width=100?>?
<?TH?align="center"?color="sliver"?onclick="">?
唯鱼的菜单?
<?/tH>?
<?tr>?
<?td>?
click?it!:)?
<?/td>?
<?/tr>?
<?/table>?
<?/div>?
<?/BODY>?
<?/HTML>
上文就是浏览器上实现右键菜单的方法,虽然效果不是很完美,但是还是可以实现的,如果哪位大侠有更好的解决方法。可以给爱站小编留言哦。
原文链接:https://js.aizhan.com/develop/JavaScript/9629.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:实现JS函数的重载
下一篇:DEFER的使用方法
- js防止表单重复提交实现代码 2020-03-29
- 基于JQuery的多标签实现代码 2020-03-29
- js实现翻页后保持checkbox选中状态的实现方法 2020-03-25
- NiftyCube实现圆角边框的方法 2020-03-20
- JS判断浏览器是否安装flash插件的简单方法 2020-03-12
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash