如何实现浏览器上的右键菜单_javascript技巧

 

 最近在程序员大本营中的讨论中有一位老兄提出如何在浏览器中实现类似于应用程序的鼠标右击后出现右键菜单的效果。唯鱼试了试,发现不是很难解决。现在就将源码和原理说出来和大家共享一下。哈,其实效果不是很完美啦,如果哪位大侠有更好的解决方法。可以给唯鱼yyu@enet.com.cn来信罗。 

  首先要解决的问题是在怎样的情况鼠标右击不会出现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>

时间: 2024-09-02 04:46:49

如何实现浏览器上的右键菜单_javascript技巧的相关文章

javascript中如何实现浏览器上的右键菜单

javascript|菜单|浏览器 如何实现浏览器上的右键菜单 最近在程序员大本营中的讨论中有一位老兄提出如何在浏览器中实现类似于应用程序的鼠标右击后出现右键菜单的效果.唯鱼试了试,发现不是很难解决.现在就将源码和原理说出来和大家共享一下.哈,其实效果不是很完美啦,如果哪位大侠有更好的解决方法.可以给唯鱼yyu@enet.com.cn来信罗. 首先要解决的问题是在怎样的情况鼠标右击不会出现IE的菜单.思路可以有两个,一个是将焦点移开,还有一个就是点在网页的什么地方不会出现右键菜单,而且会响应鼠标

&amp;#106avascript中如何实现浏览器上的右键菜单

菜单|浏览器 如何实现浏览器上的右键菜单 最近在程序员大本营中的讨论中有一位老兄提出如何在浏览器中实现类似于应用程序的鼠标右击后出现右键菜单的效果.唯鱼试了试,发现不是很难解决.现在就将源码和原理说出来和大家共享一下.哈,其实效果不是很完美啦,如果哪位大侠有更好的解决方法.可以给唯鱼yyu@enet.com.cn来信罗. 首先要解决的问题是在怎样的情况鼠标右击不会出现IE的菜单.思路可以有两个,一个是将焦点移开,还有一个就是点在网页的什么地方不会出现右键菜单,而且会响应鼠标点击消息.(哈哈,废话

如何实现浏览器上的右键菜单

菜单|浏览器|右键 今天和大家一起学习一下如何在浏览器中实现类似于应用程序的鼠标右击后出现右键菜单的效果. 首先要解决的问题是在怎样的情况鼠标右击不会出现IE的菜单.思路可以有两个,一个是将焦点移开,还有一个就是点在网页的什么地方不会出现右键菜单,而且会响应鼠标点击消息. 想了想, 总结出的下面几种方法 1.响应右键消息出一个ALERT框(还有点新鲜的东东没有). 2.响应右键消息后弹出一个新的窗口.将初始页的的焦点移开. 可是经过试验后发现只有窗口出现在鼠标右击的位置时,才会没有浏览器的右键菜

Popup对象实现右键菜单_javascript技巧

Popup对象实现右键菜单 单击鼠标右键查看效果 中关村在线 电脑爱好者 新浪网 新华网

JavaScript屏蔽指定区域内右键菜单_javascript技巧

[把鼠标放在这里单击右键试试] [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

javascript setAttribute, getAttribute 在不同浏览器上的不同表现_javascript技巧

测试环境(客户端浏览器 ) IE6,IE7, IE8兼容模式, IE8 Firefox 3.6.8, google chrome 5.0.375.125 先来说明两个函数的标准定义. elementNode.setAttribute(name,value) name 必需.规定要设置的属性名. value 必需.规定要设置的属性值. 该方法把指定的属性设置为指定的值.如果不存在具有指定名称的属性,该方法将创建一个新属性. elementNode.getAttribute(name) name 必

删除IE浏览器中的右键菜单

最近不经意间安装了快车3,因为IE9本身自带了下载管理器,所以都不需要安装第三方下载软件了.便将"快车3"给卸载了,可能是没有卸载不完全的原因,IE9浏览器的右键关联菜单仍有一系列"快车3"的相关链接.显示在那里感觉有点显眼,如何才能将IE浏览器的这些右键链接菜单删除呢? 这个问题产生的原因可能是因为在卸载软件时,未能在注册表内生效的结果导致.建议在启动卸载程序的时候以"管理员身份"运行. 您可以通过些以下操作在注册表中进行解决: 1. 依次点击

Javascript实现鼠标右键特色菜单_javascript技巧

在Web端,通常是不需要右键菜单,各个浏览器也有自己的右键菜单.但是对于一些特殊的网页,是需要右键菜单来增加用户体验的,比如百度音乐,QQ邮箱,相信大家都在Web端使用过右键菜单了,现在来分享一下如何实现,比较简单. 运行代码: window.onload = function() { document.oncontextmenu = block; document.body.onmouseup = function(event) { if (!event) event = window.eve

在图片文件(多个)上添加右键菜单【求助大神】

问题描述 在图片文件的右键菜单中添加一项,点击该菜单能够打开我的WinForm程序,并将所选择的所有图片路径传入程序中.类似于音乐播放器的将音乐添加至列表. 通过修改注册表添加一个右键菜单,可以添加单个的文件.注册表位置:HKEY_CLASSES_ROOTjpegfileshellcompoundPDFcommand注册表命令:程序路径"%1"并修改主方法如下:staticvoidMain(string[]args){Application.EnableVisualStyles();A