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