| 首页 | IT动态 | 硬件 | 应用 | 互联网 | 网络 | 网站 | 黑客 | 编程 | 数码 | 视频教程 | 游戏 | 休闲 | 软件 | 视频 | IT认证 | 动漫图片 | IT杂谈 | 论坛 | 
Google
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • 用css样式表实现首字大写特效

  • 认清CSS的类class和标识id选…

  • 做网站菜鸟如何成为高手

  • 自适应客户端分辨率的实现方…

  • Dreamweaver8搞定“web标准”

  • Dreamweaver临时文件工作方式

  • Dreamweaver制作网页实用七招

  • 用ASP生成XBM数字图片(可用…

  • DW MX实例:随笔管理及评论实…

  • DW MX实例:实现产品搜索

  • 广 告 位 置
    黄金广告位
    Q
    您现在的位置: 无忧IT人 >> 网站 >> JSP >> 文章正文
    javascript中如何实现浏览器上的右键菜单           
    javascript中如何实现浏览器上的右键菜单
    作者:网络 文章来源:转载 点击数: 更新时间:2007-8-11
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:
      如何实现浏览器上的右键菜单

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

    [1] [2] 下一页  

    文章录入:51iter    责任编辑:51iter 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |