如何在IE右键菜单中添加自定义项

 摘要: 最近小鑫参加了名为“微软社区精英计划”的活动,这个活动给这个组织内的成员定期提供免费的最新微软内部培训。而对我们这些成员的要求则是定期地发布有关微软技术的博文和视频,当然这些都应该是原创的,并且在每次发布了博文和视频后,这个活动的举办者还要求我们按照指定格式将博文或视频的链接发给他们一遍他们查看和备案。但是呢,小鑫是个很不喜欢做重复工作的人,又特别是对于发邮件这种毫无技术含量可言的事就更是厌烦了。后来经过小鑫分析,发现博文或视频上线和发送上线通知邮件这两个任务之间仅由博文或视频的URL来连接,即当博文或视频上线生成新的URL后,然后发送上线通知邮件的任务才会正式启动,而前一个任务基本无法用计算机代替,所以小鑫就想能不能在URL生成后直接通过点击IE浏览器的右键菜单来自动将指定URL传给邮件发送程序,同时邮件发送程序内部还可以自动识别该URL指向的是视频还是博文呢?经过2个小时的研究,小鑫终于得偿所愿!现在就想通过这篇博文和大家一块来分享。

正文:

IE的右键菜单中的可自定义区是有注册表来控制,要想添加自定义菜单则

1、首先打开注册表编辑器(regedit);

2、然后依次找到结点[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\];

这是在结点MenuExt下可以看到所有IE右键菜单中的项,如下图:

image     image

               注册表截图                                       IE右键菜单截图

     这时可以根据自己的需要在MenuExt中建立新项,并给新项的默认值赋值为指定html的文件路径,其中html文件中包含了在IE右键菜单项的事件处理方法。值得一提的是,该事件处理方法是用javascript来实现的,也就是说,当用户在IE中点击了右键菜单上的某项后,IE会将会根据被点击的菜单项把其在注册表中该项所对应的html文件的内容全部加载到当前页面,如此也就实现了IE右键菜单的点击事件响应过程。下面小鑫将以“发送上线通知”菜单项的事件处理代码来讲解事件处理代码的编写过程。

 

上线通知邮件生成javascript代码
<script language="javascript">

function AddLink(Url)
{
if (Url != "")
{
if (Url) {
//alert(Url.toString().indexOf("wowMVP"));
if (Url.indexOf("wowMVP") != -1) {
var mailbody = ""+Url;
window.location
= "mailto:****@microsoft.com?subject=[微软社区精英计划]博文视频上线通知&body=" + mailbody;

}
if (Url.indexOf("56.com") != -1) {
var mailbody = ""+Url;

window.location
= "mailto:****@microsoft.com?subject=[微软社区精英计划]博文视频上线通知&body=" + mailbody;
}
}
}
}

function OnContextMenu()
{
var srcEvent = external.menuArguments.event;
var EventElement;

if(typeof(srcEvent.clientX) == "undefined")
{
EventElement
= external.menuArguments.document.elementFromPoint ( srcEvent.pointerX, srcEvent.pointerY );
}
else
{
EventElement
= external.menuArguments.document.elementFromPoint ( srcEvent.clientX, srcEvent.clientY );
}

var strDownloadPage = external.menuArguments.location;
var srcAnchor;

if (srcEvent.type == "MenuExtUnknown")
{
srcAnchor
= EventElement;
//alert(srcAnchor.tagName);
if (srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() == "a" && srcAnchor.href!=null)
{
AddLink(srcAnchor.href);
return;
}
}
alert(
"不可为该链接发送上线通知!");
}

OnContextMenu();

</script>

 

 

  在以上的代码中主要有两个关键功能函数,一个是函数OnContextMenu,另一个是函数AddLink。其中,

1、OnContextMenu函数中完成的主要工作是获取点击右键时鼠标指向的HTML元素,也就是链接元素,然后将链接元素指向的URL传给AddLink函数;

2、AddLink函数接到OnContextMenu传入的URL后,则根据URL的关键字判断该URL指向的是博文还是视频(小鑫的博文链接中有“wowmvp”的关键字,视频链接里有“56.com”作为关键字),然后再通过将URL和URL类型插入到“mailto”命令文本的特定位置,如此也就实现了博文或视频上线通知邮件的自动生成了。

  当然最后一步也是最重要的了,就是一定要记得在</script> 上方调用函数OnContextMenu噢!

接下来小鑫向大家showshow上线通知的功能截图吧^_^

 

image

在小鑫的博客网站

自动生成的博文上线通知邮件

image

在小鑫的视频网站

自动生成的视频上线通知邮件

好的,今天就到这里了。小鑫要去睡觉了,晚安啰~~~

小鑫的相关视频:Outlook2010新特性_快速步骤     

posted @ 2010-04-13 00:30  乐水鱼  阅读(3382)  评论(8编辑  收藏  举报