0

當前,我的擴展程序的最上面的上下文菜單使用manifest.jsonname作爲標題。 name相當長,並創建一個大的上下文菜單來適應它。是否可以更改上下文菜單使用的標題?我寧願使用manifest.jsonshort_name更改擴展名頂級上下文菜單標題

我在the docs中沒有找到任何提到這樣做的內容。

實施例:

的manifest.json
{ 
    "name": "My extension - And a blurb", 
    "short_name": "My extension" 
    ... 
    "permissions": [ 
     "contextMenus" 
    ], 
    "icons": { 
     "16": "icon-bitty.png", 
     "48": "icon-small.png", 
     "128": "icon-large.png" 
    }, 
    ... 
    } 

background.js
chrome.contextMenus.create({"title": "Test item"}); 

結果,看起來上下文菜單等:

My extension - And a blurb 
| 
--- Test item 

我希望它是:

My extension 
| 
--- Test item 
+0

請編輯問題爲主題:包括一個**完整的** [mcve],重複的問題。包括一個* manifest.json *,一些背景*和*內容腳本。尋求調試幫助的問題(「**爲什麼不是這個代碼工作?」)必須包括:►期望的行爲,►特定問題或錯誤*和*►在問題中重現問題所需的最短代碼**本身**。沒有明確問題陳述的問題對其他讀者無益。請參閱:「**如何創建[mcve] **」,[我可以在此處詢問哪些主題?](http://stackoverflow.com/help/on-topic)和[問]。 – Makyen

+0

基本上,如果我們要調查這一點,並且正確地理解*你正在談論的內容,那麼[mcve]會讓它變得更容易。此外,一個小屏幕截圖顯示*正是*你在說什麼會有所幫助。我可以*猜測*你在說什麼,我相信我知道,但我不知道*我理解你正在談論哪個上下文菜單是正確的。 – Makyen

+0

增加了一個例子 – kspearrin

回答

1

這種行爲只發生,如果你有超過1菜單項,不要拿自己的層次結構的照顧。

如果您聲明自己的「根」項目,並且所有其他項目都明確地在其中,則不會發生這種情況。

chrome.contextMenus.removeAll(); 
chrome.contextMenus.create({title: "How fancy", id: "root"}); 
chrome.contextMenus.create({title: "Indeed", id: "sub1", parentId: "root"}); 
chrome.contextMenus.create({title: "Indubitably", id: "sub2", parentId: "root"}); 

將導致

[your 16x16 icon] How fancy 
| 
+- Indeed 
| 
+- Indubitably 

在一般情況下,要確保你的ID分配給您的上下文菜單。它對於很多目的很有用。

注意:從技術上講,contextMenus是一個異步API,理想情況下,應該鏈接調用,而不是簡單地排序它們,但對同一個異步API的調用序列在這種情況下似乎工作正常。如果您需要在添加所有菜單後運行代碼,請在最後一個回調create中執行。