如何在IE右键菜单中添加自定义项
?摘要: 最近小鑫參加了名為“微軟社區(qū)精英計劃”的活動,這個活動給這個組織內的成員定期提供免費的最新微軟內部培訓。而對我們這些成員的要求則是定期地發(fā)布有關微軟技術的博文和視頻,當然這些都應該是原創(chuàng)的,并且在每次發(fā)布了博文和視頻后,這個活動的舉辦者還要求我們按照指定格式將博文或視頻的鏈接發(fā)給他們一遍他們查看和備案。但是呢,小鑫是個很不喜歡做重復工作的人,又特別是對于發(fā)郵件這種毫無技術含量可言的事就更是厭煩了。后來經(jīng)過小鑫分析,發(fā)現(xiàn)博文或視頻上線和發(fā)送上線通知郵件這兩個任務之間僅由博文或視頻的URL來連接,即當博文或視頻上線生成新的URL后,然后發(fā)送上線通知郵件的任務才會正式啟動,而前一個任務基本無法用計算機代替,所以小鑫就想能不能在URL生成后直接通過點擊IE瀏覽器的右鍵菜單來自動將指定URL傳給郵件發(fā)送程序,同時郵件發(fā)送程序內部還可以自動識別該URL指向的是視頻還是博文呢?經(jīng)過2個小時的研究,小鑫終于得償所愿!現(xiàn)在就想通過這篇博文和大家一塊來分享。
正文:
IE的右鍵菜單中的可自定義區(qū)是有注冊表來控制,要想添加自定義菜單則
1、首先打開注冊表編輯器(regedit);
2、然后依次找到結點[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\];
這是在結點MenuExt下可以看到所有IE右鍵菜單中的項,如下圖:
????
?????????????? 注冊表截圖?????????????????????????????????????? IE右鍵菜單截圖
???? 這時可以根據(jù)自己的需要在MenuExt中建立新項,并給新項的默認值賦值為指定html的文件路徑,其中html文件中包含了在IE右鍵菜單項的事件處理方法。值得一提的是,該事件處理方法是用javascript來實現(xiàn)的,也就是說,當用戶在IE中點擊了右鍵菜單上的某項后,IE會將會根據(jù)被點擊的菜單項把其在注冊表中該項所對應的html文件的內容全部加載到當前頁面,如此也就實現(xiàn)了IE右鍵菜單的點擊事件響應過程。下面小鑫將以“發(fā)送上線通知”菜單項的事件處理代碼來講解事件處理代碼的編寫過程。
?
上線通知郵件生成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=[微軟社區(qū)精英計劃]博文視頻上線通知&body=" + mailbody;
}
if (Url.indexOf("56.com") != -1) {
var mailbody = ""+Url;
window.location = "mailto:****@microsoft.com?subject=[微軟社區(qū)精英計劃]博文視頻上線通知&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("不可為該鏈接發(fā)送上線通知!");
}
OnContextMenu();
</script>
?
?
在以上的代碼中主要有兩個關鍵功能函數(shù),一個是函數(shù)OnContextMenu,另一個是函數(shù)AddLink。其中,
1、OnContextMenu函數(shù)中完成的主要工作是獲取點擊右鍵時鼠標指向的HTML元素,也就是鏈接元素,然后將鏈接元素指向的URL傳給AddLink函數(shù);
2、AddLink函數(shù)接到OnContextMenu傳入的URL后,則根據(jù)URL的關鍵字判斷該URL指向的是博文還是視頻(小鑫的博文鏈接中有“wowmvp”的關鍵字,視頻鏈接里有“56.com”作為關鍵字),然后再通過將URL和URL類型插入到“mailto”命令文本的特定位置,如此也就實現(xiàn)了博文或視頻上線通知郵件的自動生成了。
當然最后一步也是最重要的了,就是一定要記得在</script> 上方調用函數(shù)OnContextMenu噢!
接下來小鑫向大家showshow上線通知的功能截圖吧^_^
?
在小鑫的博客網(wǎng)站
自動生成的博文上線通知郵件
在小鑫的視頻網(wǎng)站
自動生成的視頻上線通知郵件
好的,今天就到這里了。小鑫要去睡覺了,晚安啰~~~
小鑫的相關視頻:Outlook2010新特性_快速步驟 ????
轉載于:https://www.cnblogs.com/wowMVP/archive/2010/04/13/1710699.html
總結
以上是生活随笔為你收集整理的如何在IE右键菜单中添加自定义项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ie8下showmodaldialog页
- 下一篇: 陈佩斯