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