今天和大家一起学习一下如何在浏览器中实现类似于应用程序的鼠标右击后出现右键菜单的效果 首先要解决的问题是在怎样的情况鼠标右击不会出现IE的菜单思路可以有两个一个是将焦点移开还有一个就是点在网页的什么地方不会出现右键菜单而且会响应鼠标点击消息 想了想 总结出的下面几种方法 响应右键消息出一个ALERT框(还有点新鲜的东东没有) 响应右键消息后弹出一个新的窗口将初始页的的焦点移开 可是经过试验后发现只有窗口出现在鼠标右击的位置时才会没有浏览器的右键菜单出现 响应右键消息后弹出一个HTML的对话框即使用showModalDialog来开启一个HTML对话框使用这种方式可以让右键菜单不会出现但是有一个问题是使用使用showModalDialog开启的对话框不会向使用WindowOpen开启的对话框一样可以移出屏幕所在的范围就是说始终可以看见有一个对话框出现在屏幕上这条路也不能走了 最后一招了在Select上进行鼠标右击或左击都不会有反应那么如果每次鼠标都点在Select上不就不会出现浏览器的右键菜单了 下面就是一个例子感兴趣的可以把下面的拷贝成l就可以看看效果了 < HTML> < title>webjx Test< /title> < script> var x y; documentonmousemove=moveMouse documentonmousedown=click function moveMouse() { Layerstyleleft = eventclientX ; Layerstyletop = eventclientY ; } function click() { if (eventbutton==) { x = eventclientX; y = eventclientY; Layerstylevisibility=; windowsetTimeout(showMenu(); ); } else { HiddenPop(); PopMenustylevisibility=hidden; } } function showMenu() { PopMenustyleleft = x ; PopMenustyletop = y ; PopMenustylevisibility=; HiddenPop(); } function HiddenPop() { Layerstylevisibility=hidden; } < /script> < BODY> 在窗口中右击一下看看出什么:) < div id=Layer > < select >< /select> < /div> < div id=PopMenu > < table border= width= > < TH align=center color=sliver onclick=> 右键菜单 < /tH> < tr> < td> click it!:) < /td> < /tr> < /table> < /div> < /BODY> < /HTML> |