国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

開發(fā) Internet Explorer 右鍵功能表(ContextMenu)

2024-05-06 15:48:31
字體:
供稿:網(wǎng)友
本篇介紹如何開發(fā) Internet Explorer 右鍵功能表(ContextMenu),以 0rz.tw 縮短網(wǎng)址列為范例

參考 MSDN Library【Adding Entries to the Standard Context Menu】開發(fā) ContextMenu

1. IE 額外的 ContextMenu 是透過註冊機碼 HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt 來建立
2. 所以只要在該位置下新增一個 Key 值,例如:新增【Make 0rz】則 IE 中按下右鍵就會出現(xiàn)相同名稱的功能

開發(fā) Internet Explorer 右鍵功能表(ContextMenu)

3. 如果我們想要在該功能上可以使用快捷鍵,就如同開發(fā) Windows Form 一樣,只要在英文名稱前加上 & 符號即可。

例如:我們把 Key 值從【Make 0rz】改為【&Make 0rz】,則當(dāng) ContextMenu 出現(xiàn)按下 M 就是執(zhí)行該項功能

4. 在該 Key 值底下,有一個重要鍵值是 Contexts,主要的功能是定義 ContextMenu 出現(xiàn)的時機

開發(fā) Internet Explorer 右鍵功能表(ContextMenu)

6. 這樣大致上,就算是完成註冊機碼的部份。我們透過製作 .reg 檔案方便讓使用者來進行安裝,以下是本範(fàn)例 RegMake0rz.reg 檔案:

復(fù)制代碼 代碼如下:


 Windows Registry Editor Version 5.00 

 [HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt/&Make 0rz]
@="file://C://Program Files//Make0rz.js" 
"Contexts"=dword:00000023

 7. 以下是 Make0rz.js 的內(nèi)容:

復(fù)制代碼 代碼如下:


  <script language="JavaScript" >   
  var obj = external.menuArguments.event.srcElement;
  var str = obj.tagName;
  if (str.toUpperCase() == 'A' || str.toUpperCase() == 'IMG') {
    if (str.toUpperCase() == 'A') {
      if (external.menuArguments.event.shiftKey) {
        str = obj.firstChild.nodeValue;
      }
      else {
        str = external.menuArguments.event.srcElement.href;
      }
    }
    else {
      str = external.menuArguments.event.srcElement.href;
    }
  }
  else {
    if (str.toUpperCase() != 'BODY') {
      str = obj.innerText;
      if (trim(str) == '') {
        str = external.menuArguments.location.href;
      }
    }
    else {
      str = external.menuArguments.location.href;
    }
  }

  //// Preview
  //var url = 'http://0rz.tw/createget?redirect=1&url=' + encodeURIComponent(str);
  //var width = 600;
  //var height = 600;

  // NO Preview
  var url = 'http://0rz.tw/createget?redirect=0&url=' + encodeURIComponent(str);
  var width = 160;
  var height = 90;

  var left = (screen.width - width) / 2;
  var top = (screen.height - height) / 2;
  var cmd = 'width=' + width + ',, top=' + top + ', left=' + left;
  cmd += ', directories=no, location=no, menubar=no, resizable=no, scrollbars=no, status=no, toolbar=no';

  newwin = window.open(url, 'windowname5', cmd);
  if (window.focus) {
    newwin.focus()
  }

  function trim(strValue) {
    var regL = /^[?@/s]+/;
    var regR = /[?@/s]+$/;
    strValue = strValue.replace(regL, "");
    strValue = strValue.replace(regR, "");
    return strValue;
  }  
  </script>

由於,在 Contexts 的 value 設(shè)定為 0x23,所以表示【預(yù)設(shè)載入】、【在連結(jié)上】、【在圖片上】按下右鍵,就會出現(xiàn)【Make 0rz】的功能。
【預(yù)設(shè)載入】:在頁面空白處,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示目前頁面連結(jié)進行縮短網(wǎng)址。
【在連結(jié)上】:在文字連結(jié)上,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示該文字連結(jié)進行縮短網(wǎng)址。
【預(yù)設(shè)載入】:在圖片連結(jié)或是圖片上,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示圖片位置進行縮短網(wǎng)址。

在 javascript 當(dāng)中,利用 external.menuArguments.event,來判斷使用者在何種時機按下右鍵并取得該元素
利用 external.menuArguments.event.srcElement.href 取得該元素的連結(jié)
利用 external.menuArguments.location.href 取得目前頁面的連結(jié)

然后利用 window.open 來開啟 0rz.tw 目標頁面,來顯是縮短網(wǎng)址后的結(jié)果。
如果是執(zhí)行程式碼的 30 – 33 的話,表示有預(yù)覽畫面 (Preview);執(zhí)行 35-38 則無預(yù)覽畫面。(可以依照需求自由調(diào)整)

8. 實際成果貼圖:
(1) 在空白處,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示目前頁面連結(jié)進行縮短網(wǎng)址。 (以 No Preview 功能呈現(xiàn))

開發(fā) Internet Explorer 右鍵功能表(ContextMenu)

開發(fā) Internet Explorer 右鍵功能表(ContextMenu)

=>

開發(fā) Internet Explorer 右鍵功能表(ContextMenu)

=>

本功能范例可點此下載,壓縮檔案包含:RegMake0rz.reg 註冊機碼安裝檔、Make0rz.js 功能執(zhí)行檔、DelMake0rz.reg 註冊機碼反安裝檔

安裝:執(zhí)行 RegMake0rz.reg,自行將 Make0rz.js 放置於 C:/Program Files 目錄下

反安裝:執(zhí)行 DelMake0rz.reg,自行將 C:/Program Files/Make0rz.js 檔案刪除
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 合川市| 富宁县| 金乡县| 长泰县| 肃宁县| 九龙城区| 朝阳市| 进贤县| 云和县| 信宜市| 托克逊县| 广灵县| 梅河口市| 霍林郭勒市| 苍梧县| 朝阳市| 竹溪县| 原平市| 阆中市| 东明县| 屯门区| 慈溪市| 郁南县| 永宁县| 手游| 桦南县| 纳雍县| 柳江县| 吉水县| 辉县市| 嘉祥县| 嘉义市| 全州县| 连江县| 土默特右旗| 米易县| 玛多县| 安新县| 平泉县| 罗田县| 阜宁县|