2021 Chrome extension manifest V3 開發 Context Menu API 探討

Context Menu API

前一篇文章探討了 Action API , 這篇來講一下 Context Menu , 我把它視為主選單, 說穿了其實就是滑鼠右鍵點擊後, 你想呈現哪一些選單給使用者使用, 用法上也不會太難~

範例程式碼. , 簡單幾行就可以建立一個表單了.

  chrome.contextMenus.create({  
        id: 'parent',
        type: 'normal',
        title: '你選擇了',
        contexts: ['all']
    });  

建立一個 obj 屬性有

id : 需要唯一

type: normal 預設為 normal

title: 要顯示的文字

contexts : 要設定的權限. all 為全部都要

chrome.runtime.onInstalled.addListener(async () => {
  chrome.contextMenus.create({  
        id: 'parent',
        type: 'normal',
        title: '你選擇了',
        contexts: ['all']
    });  
}

這樣就可以在 extension 安裝時. 把 主選單給載入進去

如果要做一個母子選單的話

chrome.runtime.onInstalled.addListener(async () => {
  chrome.contextMenus.create({  
        id: 'parent',
        type: 'normal',
        title: '你選擇了',
        contexts: ['all']
    });  

    chrome.contextMenus.create({  
        id: 'child1',
        title: "I am child1",
        contexts: ['all'],
        parentId: 'parent',
        type: 'normal'
    });  
     
}

在選項中再多一個 parentId , 看要再接再哪一個選單 下面. 填入 id即可.

chrome.runtime.onInstalled.addListener(async () => {
  chrome.contextMenus.create({  
        id: 'parent',
        type: 'normal',
        title: '你選擇了',
        contexts: ['all']
    });  

    chrome.contextMenus.create({  
        id: 'child1',
        title: "I am child1",
        contexts: ['all'],
        parentId: 'parent',
        type: 'normal'
    }); 
 
   chrome.contextMenus.create({  
        id: 'child4',
        title: "I am child4",
        contexts: ['all'],
        parentId: 'parent',
        type: 'separator'
    }); 
         chrome.contextMenus.create({  
        id: 'child5',
        title: "I am child5",
        contexts: ['all'],
        parentId: 'parent',
        type: 'radio'
    });  
    chrome.contextMenus.create({  
        id: 'child6',
        title: "I am child6",
        contexts: ['all'],
        parentId: 'parent',
        type: 'radio'
    });  
}

如果要做分隔線的效果. 把 type: ‘separator’ 改為這個即可, 最後效果如圖

Reference :

https://developer.chrome.com/docs/extensions/reference/contextMenus/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *