惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
L
LINUX DO - 最新话题
T
Troy Hunt's Blog
博客园_首页
量子位
Jina AI
Jina AI
S
SegmentFault 最新的问题
IT之家
IT之家
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏
N
News | PayPal Newsroom
P
Proofpoint News Feed
Cyberwarzone
Cyberwarzone
S
Securelist
Google Online Security Blog
Google Online Security Blog
P
Privacy International News Feed
博客园 - Franky
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
NISL@THU
NISL@THU
C
Cisco Blogs
V
Vulnerabilities – Threatpost
腾讯CDC
The Hacker News
The Hacker News
K
Kaspersky official blog
C
Cyber Attacks, Cyber Crime and Cyber Security
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Security Archives - TechRepublic
Security Archives - TechRepublic
A
About on SuperTechFans
Webroot Blog
Webroot Blog
The Register - Security
The Register - Security
Scott Helme
Scott Helme
B
Blog
Security Latest
Security Latest
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tenable Blog
Blog — PlanetScale
Blog — PlanetScale
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Schneier on Security

博客园 - 白白

Avril lavigne - Girlfriend(mv) ASP.NET 2.0 - Enter Key - Default Submit Button - 白白 圣射手双修心得 圣射手技能 Event事件详解 用Javascript实现Agent(网页精灵)(1) 利用vml制作统计图全攻略----饼图的制作(四) 利用vml制作统计图全攻略----饼图的制作 (三) 利用vml制作统计图全攻略----饼图的制作 (二) 利用vml制作统计图全攻略----饼图的制作(一) (Tip)教你通过windows的正版验证 GML、SVG、VML的比较 AJAX七宗罪(转) AJAX(转) HTML中字符实体集 ASCII码表 关于potentially dangerous Request.Cookies value的解决 最佳实践:string对象(string.empty与""的区别到底是什么呢?) C#来创建和读取XML文档
用Javascript实现Agent(实现右键菜单)(2) - 白白 - 博客园
changzheng · 2006-02-17 · via 博客园 - 白白

用Javascript实现Agent(实现右键菜单)

既然是显示右键菜单,那么我们就要截获对精灵按右键时的事件oncontextmenu

然后将右键菜单的html封装到一个函数,一上来这个菜单层是隐藏的

function getMenuHtml()
{
 var menuHtml ="<div id=menu style=\"text-align: left;position: absolute; visibility: hidden; width: 85px; z-index: 200;padding:1px\">";
 menuHtml += "<table border=1 width=100 height=100>";
 menuHtml += "<tr>";
 menuHtml += "<td>";
 menuHtml += "Menu1";
 menuHtml += "</td>";
 menuHtml += "</tr>";
 menuHtml += "</table>";
 menuHtml += "</div>";
 return menuHtml;
}

实现右键菜单,我们需要精灵截获oncontextmenu事件,需要对昨天的run函数进行一点小的修改

Agent.prototype.run=function()
{
 var agentHtml = "";
 agentHtml += "<img src="+this.imgAgent;
 agentHtml += " id=\"agent1\"";
 agentHtml += " style=\"position:absolute;left:"+this.agentLeft+";top:"+this.agentTop+";cursor:move\"";
 agentHtml += " onselectstart=\"return false\"";
 agentHtml += " onmousedown=\"mousedown(this)\"";
 agentHtml += " onmouseup=\"mouseup()\"";
 agentHtml += " onmousemove=\"mousemove()\"";
 agentHtml += " oncontextmenu=\"return showRightMenu()\"";
 agentHtml += ">";
 agentHtml += getMenuHtml();
 return document.write(agentHtml);
}

可以看出oncontextmenu调用的是showRightMenu函数,这个函数使菜单层可见,并且显示位置随着鼠标的位置而显示

注解:

scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
event.clientX:鼠标点击的x轴位置
event.clientY:鼠标点击的y轴位置

/*
* 右键菜单 v1.0
* author: 清风
*/
function showRightMenu()
{
 menu.style.left=document.body.scrollLeft+event.clientX
 menu.style.top=document.body.scrollTop+event.clientY
 menu.style.visibility="visible";
 return false;
}

菜单现在可以显示了,如何使其消失呢?应当是用户点击任意位置就可消失

document.onclick=click
function click()
{
 menu.style.visibility="hidden";
}

今天的效果如下:

                                                                                                                                                                                                             选择自 的 Blog