思索网:WWW.4SO.NET
网站首页
设为首页
加入收藏
社区论坛
联系我们
网站地图
发现个人价值
提高企业内涵
一切源于思索
首页
企业之家
公关文秘
免费论文
网上办公指南
操作系统
多媒体应用
现代教学
下载中心
专题报道
推荐文章
评论
English Article
IT资讯
网页设计
网站运营
编程开发
平面设计
网络安全
工具下载
站内搜索
最新文章
热门文章
论坛
栏目列表
ASP专区
PHP专区
JSP专区
.Net专区
XML专区
其它网页编程
HTML&CSS
Dreamweaver
Frontpage
Javascript
数据库相关
服务器相关
网络媒体
建站经验
FLASH
网络安全
首页
>
站长学院
>
Javascript
> javascript中如何实现浏览器上的右键菜单
javascript中如何实现浏览器上的右键菜单
日期:
2005-04-24 00:00:00
来源:
中国站长学院
请您记住思索网的网址:
http://www.4so.net
[加入收藏夹]
如何实现浏览器上的右键菜单
最近在程序员大本营中的讨论中有一位老兄提出如何在浏览器中实现类似于应用程序的鼠标右击后出现右键菜单的效果。唯鱼试了试,发现不是很难解决。现在就将源码和原理说出来和大家共享一下。哈,其实效果不是很完美啦,如果哪位大侠有更好的解决方法。可以给唯鱼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 2 width=100 >
< TH align="center" color="sliver" onclick="">
唯鱼的菜单
< /tH>
< tr>
< td>
click it!:)
< /td>
< /tr>
< /table>
< /div>
< /BODY>
< /HTML>
本文地址:
http://www.4so.net/web/javascript/2107.html
将本页加入收藏夹
将地址复制到剪贴板发送给好友
若发现本文有误或版权问题点击这里
热门信息
相关文章
[
Javascript
]
校验日期的函数
[
Javascript
]
强制设为首页代码
[
Javascript
]
最精致的日历式日期输入控件
[
Javascript
]
几行代码轻松搞定网页的简繁转换
[
Javascript
]
轻松弹出无边框网页的Javscrpt代
[
Javascript
]
网页经典代码(五)
[
Javascript
]
源码学习:一个简单的日历控件(11
[
Javascript
]
javascript版的日期输入控件(6)
[
Javascript
]
对联广告代码效果之一[普通效果]
[
Javascript
]
页面载入时提示消息层
VS .net 2003调试javascript中两个杂症的解决
让JavaScript弹出窗口变得体贴一些
JavaScript技术讲座-使用内部对象系统
JavaScript技术讲座-创建新对象
JavaScript技术讲座-基于对象的JavaScript语言
JavaScript技术讲座-程序构成
JavaScript技术讲座-基本数据结构
JavaScript技术讲座-JavaScript语言概况
JavaScript 中的replace方法
一个强制弹出窗口的JavaScript类:ForceWindow
文章评论
收藏本文
打印本文
关闭窗口