Açıklama
Google Chrome'un bağlam menüsüne öğe eklemek için chrome.contextMenus
API'yi kullanın. İçerik menüsü eklemelerinizin hangi tür nesneler için geçerli olacağını (ör. resimler, köprüler ve sayfalar) seçebilirsiniz.
İzinler
contextMenus
API'yi kullanmak için uzantınızın manifest dosyasında "contextMenus"
iznini beyan etmeniz gerekir. Ayrıca, menü öğenizin yanında gösterilecek 16 x 16 piksel boyutunda bir simge belirtmeniz gerekir. Örneğin:
{ "name": "My extension", ... "permissions": [ "contextMenus" ], "icons": { "16": "icon-bitty.png", "48": "icon-small.png", "128": "icon-large.png" }, ... }
Kavramlar ve kullanım
Bağlam menüsü öğeleri, dosya:// veya chrome:// URL'leri olanlar da dahil olmak üzere herhangi bir dokümanda (veya doküman içindeki çerçevede) görünebilir. Öğelerinizin hangi dokümanlarda görünebileceğini kontrol etmek için create()
veya update()
yöntemlerini çağırırken documentUrlPatterns
alanını belirtin.
İhtiyacınız kadar çok bağlam menüsü öğesi oluşturabilirsiniz. Ancak uzantınızdan birden fazla öğe aynı anda görünürse Google Chrome bunları otomatik olarak tek bir üst menüde daraltır.
Örnekler
Bu API'yi denemek için chrome-extension-samples deposundan contextMenus API örneğini yükleyin.
Türler
ContextType
Bir menünün görünebileceği farklı bağlamlar. "Tümü"nü belirtmek, "başlatıcı" dışındaki tüm diğer bağlamların kombinasyonuna eş değerdir. "Başlatıcı" bağlamı yalnızca uygulamalar tarafından desteklenir ve başlatıcıda/görev çubuğunda/dock'ta vb. uygulama simgesi tıklandığında görünen bağlam menüsüne menü öğeleri eklemek için kullanılır. Farklı platformlar, başlatıcı bağlam menüsünde gerçekten desteklenenler konusunda sınırlamalar getirebilir.
Enum
"all"
"page"
"frame"
"selection"
"link"
"editable"
"image"
"video"
"audio"
"launcher"
"browser_action"
"page_action"
"action"
CreateProperties
Yeni içerik menüsü öğesinin özellikleri.
Özellikler
- işaretli
boolean isteğe bağlı
Onay kutusunun veya radyo düğmesinin ilk durumu: Seçili için
true
, seçili değil içinfalse
. Belirli bir grupta aynı anda yalnızca bir radyo düğmesi seçilebilir. - bağlamlar
[ContextType, ...ContextType[]] isteğe bağlı
Bu menü öğesinin görüneceği bağlamların listesi. Varsayılan olarak
['page']
değerine ayarlanır. - documentUrlPatterns
string[] isteğe bağlı
Öğenin yalnızca URL'si verilen kalıplardan biriyle eşleşen dokümanlar veya çerçeveler için geçerli olmasını kısıtlar. Kalıp biçimleri hakkında ayrıntılı bilgi için Eşleşme Kalıpları başlıklı makaleyi inceleyin.
- etkin
boolean isteğe bağlı
Bu içerik menüsü öğesinin etkin veya devre dışı olup olmadığı. Varsayılan olarak
true
değerine ayarlanır. - id
dize isteğe bağlı
Bu öğeye atanacak benzersiz kimlik. Etkinlik sayfaları için zorunludur. Bu uzantı için başka bir kimlikle aynı olamaz.
- parentId
dize | sayı isteğe bağlı
Bir üst menü öğesinin kimliği. Bu, öğeyi daha önce eklenen bir öğenin alt öğesi yapar.
- targetUrlPatterns
string[] isteğe bağlı
documentUrlPatterns
'ya benzer şekilde,img
,audio
vevideo
etiketlerininsrc
özelliğine vea
etiketlerininhref
özelliğine dayalı filtreler. - title
dize isteğe bağlı
Öğede gösterilecek metin.
type
,separator
olmadığı sürece bu özellik zorunludur. Bağlamselection
olduğunda, seçili metni göstermek için dize içinde%s
kullanın. Örneğin, bu parametrenin değeri "%s'yi Domuz Latincesi'ne çevir" ise ve kullanıcı "cool" kelimesini seçerse seçim için bağlam menüsü öğesi "cool'u Domuz Latincesi'ne çevir" olur. - tür
ItemType isteğe bağlıdır.
Menü öğesinin türü. Varsayılan olarak
normal
değerine ayarlanır. - görünür
boolean isteğe bağlı
Öğenin menüde görünür olup olmadığı.
- onclick
void optional
Menü öğesi tıklandığında geri çağrılan bir işlev. Bu özellik, hizmet çalışanının içinde kullanılamaz. Bunun yerine,
contextMenus.onClicked
için bir dinleyici kaydetmeniz gerekir.onclick
işlevi şu şekilde görünür:(info: OnClickData, tab: Tab) => {...}
- bilgi
Tıklanan öğe ve tıklamanın gerçekleştiği bağlam hakkında bilgiler.
- sekmesinden
Tıklamanın gerçekleştiği sekmenin ayrıntıları. Bu parametre, platform uygulamalarında mevcut değildir.
-
ItemType
Menü öğesinin türü.
Enum
"normal"
"checkbox"
"radio"
"separator"
OnClickData
Bir bağlam menüsü öğesi tıklandığında gönderilen bilgiler.
Özellikler
- işaretli
boolean isteğe bağlı
Bir onay kutusu veya radyo öğesi tıklandıktan sonraki durumunu gösteren işaret.
- düzenlenebilir
boolean
Öğenin düzenlenebilir olup olmadığını (metin girişi, metin alanı vb.) gösteren işaret.
- frameId
number isteğe bağlı
Chrome 51 veya sonraki sürümlerİçerik menüsünün tıklandığı öğenin çerçeve kimliği (çerçeve içindeyse).
- frameUrl
dize isteğe bağlı
İçerik menüsünün tıklandığı öğenin çerçevesinin URL'si (çerçeve içindeyse).
- linkUrl
dize isteğe bağlı
Öğe bir bağlantıysa yönlendirdiği URL.
- mediaType
dize isteğe bağlı
Bağlam menüsü bu tür öğelerden birinde etkinleştirildiyse "image" (resim), "video" (video) veya "audio" (ses) değerlerinden biri.
-
dize | sayı
Tıklanan menü öğesinin kimliği.
- pageUrl
dize isteğe bağlı
Menü öğesinin tıklandığı sayfanın URL'si. Tıklama, başlatıcı bağlam menüsü gibi geçerli sayfanın olmadığı bir bağlamda gerçekleştiyse bu özellik ayarlanmaz.
- parentMenuItemId
dize | sayı isteğe bağlı
Tıklanan öğenin varsa üst kimliği.
- selectionText
dize isteğe bağlı
Bağlam seçimi için metin (varsa).
- srcUrl
dize isteğe bağlı
"src" URL'si olan öğelerde bulunur.
- wasChecked
boolean isteğe bağlı
Bir onay kutusunun veya radyo öğesinin tıklanmadan önceki durumunu gösteren işaret.
Özellikler
ACTION_MENU_TOP_LEVEL_LIMIT
Bir uzantı işlem bağlam menüsüne eklenebilecek maksimum üst düzey uzantı öğesi sayısı. Bu sınırı aşan öğeler yok sayılır.
Değer
6
Yöntemler
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
Yeni bir bağlam menüsü öğesi oluşturur. Oluşturma sırasında bir hata oluşursa bu hata, oluşturma geri çağırma işlemi tetiklenene kadar algılanamayabilir. Ayrıntılar runtime.lastError
içinde yer alır.
Parametreler
- createProperties
- callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
sayı | dize
Yeni oluşturulan öğenin kimliği.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
): Promise<void>
İçerik menüsü öğesini kaldırır.
Parametreler
-
dize | sayı
Kaldırılacak içerik menüsü öğesinin kimliği.
İadeler
-
Promise<void>
Chrome 123 veya daha yeni bir sürüm
removeAll()
chrome.contextMenus.removeAll(): Promise<void>
Bu uzantı tarafından eklenen tüm bağlam menüsü öğelerini kaldırır.
İadeler
-
Promise<void>
Chrome 123 veya daha yeni bir sürüm
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
): Promise<void>
Daha önce oluşturulmuş bir bağlam menüsü öğesini günceller.
Parametreler
- id
dize | sayı
Güncellenecek öğenin kimliği.
- updateProperties
nesne
Güncellenecek mülkler.
contextMenus.create
işleviyle aynı değerleri kabul eder.- işaretli
boolean isteğe bağlı
- bağlamlar
[ContextType, ...ContextType[]] isteğe bağlı
- documentUrlPatterns
string[] isteğe bağlı
- etkin
boolean isteğe bağlı
- parentId
dize | sayı isteğe bağlı
Bu öğenin üst öğesi yapılacak öğenin kimliği. Not: Bir öğeyi kendi soyundan gelen bir öğenin alt öğesi olarak ayarlayamazsınız.
- targetUrlPatterns
string[] isteğe bağlı
- title
dize isteğe bağlı
- tür
ItemType isteğe bağlıdır.
- görünür
boolean isteğe bağlı
Chrome 62 veya daha yeni bir sürümÖğenin menüde görünür olup olmadığı.
- onclick
void optional
onclick
işlevi şu şekilde görünür:(info: OnClickData, tab: Tab) => {...}
- bilgiChrome 44 veya daha yeni bir sürüm
- sekmesindenChrome 44 veya daha yeni bir sürüm
Tıklamanın gerçekleştiği sekmenin ayrıntıları. Bu parametre, platform uygulamalarında mevcut değildir.
-
-
İadeler
-
Promise<void>
Chrome 123 veya daha yeni bir sürüm
Etkinlikler
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Bir içerik menüsü öğesi tıklandığında tetiklenir.
Parametreler
- callback
işlev
callback
parametresi şu şekilde görünür:(info: OnClickData, tab?: tabs.Tab) => void
- bilgi
- sekmesinden
tabs.Tab isteğe bağlı
-