亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2013年07月03日 22:52:12   作者:  
本篇介紹如何開發(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)相同名稱的功能

SNAG-0003

SNAG-0001

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

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

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

SNAG-0004

包含:Default(預設載入)、Images(在圖片上)、Control(任一控制項上)、Tables(在表格格上)、Text selection(純文字反白選擇時)、Anchor(在連結上)

如果 ContextMenu 要包含兩種以上的出現(xiàn)時機,則將 value 自行做 logic or 計算再帶入即可

例如:在本范例中,我們可以新增一個 DWORD 型態(tài),名稱 Contexts、值為 23 的鍵值。則表示該 ContextMenu 【預設載入】、【在連結上】、【在圖片上】按下右鍵,就會出現(xiàn)【Make 0rz】的功能。

5. 另外還有 (Default) 這個鍵值,該鍵值填入的內(nèi)容就是使用者執(zhí)行 ContextMenu 功能時交給誰來處理,可能是 .html、.exe、.dll…. 等等。

例如本范例中,我想要呼叫 javascript 來執(zhí)行功能,所以就填入【file://C:\Program Files\Make0rz.js】

SNAG-0007

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

復制代碼 代碼如下:

 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)容:

復制代碼 代碼如下:

  <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 + ', height=' + height + ', 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 設定為 0x23,所以表示【預設載入】、【在連結上】、【在圖片上】按下右鍵,就會出現(xiàn)【Make 0rz】的功能。
【預設載入】:在頁面空白處,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示目前頁面連結進行縮短網(wǎng)址。
【在連結上】:在文字連結上,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示該文字連結進行縮短網(wǎng)址。
【預設載入】:在圖片連結或是圖片上,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示圖片位置進行縮短網(wǎng)址。

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

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

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

SNAG-0009

http://tw.msn.com/?ocid=iehp => http://0rz.tw/KR9Hf

SNAG-0010

(2) 在文字連結(新 聞)上,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示該文字連結進行縮短網(wǎng)址。(以 Preview 功能呈現(xiàn))

SNAG-0008

http://news.msn.com.tw/ => http://0rz.tw/7d2H6

SNAG-0011

(3) 在圖片連結或是圖片上,按下右鍵執(zhí)行 ContextMenu 的【Make 0rz】,表示圖片位置進行縮短網(wǎng)址。

SNAG-0012

http://sin.stb01.s-msn.com/i/53/79D3A7E9A23E21C6A510F09720CD2.jpg => http://0rz.tw/JlTDN

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

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

反安裝:執(zhí)行 DelMake0rz.reg,自行將 C:\Program Files\Make0rz.js 檔案刪除

相關文章

  • js禁止Backspace鍵使瀏覽器后退的實現(xiàn)方法

    js禁止Backspace鍵使瀏覽器后退的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨s禁止Backspace鍵使瀏覽器后退的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 微信小程序開發(fā)搜索功能實現(xiàn)(前端+后端+數(shù)據(jù)庫)

    微信小程序開發(fā)搜索功能實現(xiàn)(前端+后端+數(shù)據(jù)庫)

    這篇文章主要介紹了微信小程序開發(fā)搜索功能實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • JS的replace方法與正則表達式結合應用講解

    JS的replace方法與正則表達式結合應用講解

    replace方法的語法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正則表達式對象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。為了幫助大家更好的理解,下面舉個簡單例子說明一下
    2007-12-12
  • Javascript中的async函數(shù)詳解

    Javascript中的async函數(shù)詳解

    這篇文章主要為大家詳細介紹了Javascript中的async函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Uniapp全局消息提示以及其組件的實現(xiàn)方法

    Uniapp全局消息提示以及其組件的實現(xiàn)方法

    當時在做登錄那邊需要做一些交互,所以必不可少要用到消息提示框,下面這篇文章主要給大家介紹了關于Uniapp全局消息提示以及其組件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • JS獲取img圖片原始尺寸高度與寬度的七種方式

    JS獲取img圖片原始尺寸高度與寬度的七種方式

    近期做項目由于每張圖片加載的時候比例大小都不一樣,加載圖片時大部分圖片會變形,導致圖片展示效果非常差,所以我們可以獲取圖片的原始寬高,然后以等比例展示,效果會非常好,這篇文章主要給大家介紹了關于JS獲取img圖片原始尺寸高度與寬度的七種方式,需要的朋友可以參考下
    2022-11-11
  • 如何在js中引入less的變量

    如何在js中引入less的變量

    這篇文章主要介紹了如何在js中引入less的變量,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 詳解在Javascript中進行面向切面編程

    詳解在Javascript中進行面向切面編程

    這篇文章主要介紹了Javascript面向切面編程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • html的DOM中Event對象onblur事件用法實例

    html的DOM中Event對象onblur事件用法實例

    這篇文章主要介紹了html的DOM中Event對象onblur事件用法,實例分析了onblur事件的使用范圍與對應的javascript使用技巧,需要的朋友可以參考下
    2015-01-01
  • 使用Math.max,Math.min獲取數(shù)組中的最值實例

    使用Math.max,Math.min獲取數(shù)組中的最值實例

    下面小編就為大家?guī)硪黄褂肕ath.max,Math.min獲取數(shù)組中的最值實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論