Açıklama
Google Chrome'un içerik menüsüne öğe eklemek için chrome.contextMenus
API'sını kullanın. İçerik menüsü eklemelerinizin ne tür nesnelere (ör. resimler, köprüler ve sayfalar) uygulanacağını seçebilirsiniz.
İzinler
contextMenus
Kullanım
İçerik menüsü öğeleri, file:// veya chrome:// URL'lerine sahip olanlar 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öntemini çağırırken documentUrlPatterns alanını belirtin.
İhtiyaç duyduğunuz sayıda içerik 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üye daraltır.
Manifest
API'yi kullanmak için uzantınızın manifest dosyasında"contextMenüs" iznini beyan etmeniz gerekir. Ayrıca, menü öğenizin yanında görüntülenmesi için 16x16 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"
},
...
}
Örnekler
Bu API'yi denemek için chrome-extension-samples deposundan contextMenüs API örneğini yükleyin.
Türler
ContextType
Bir menünün görünebileceği farklı bağlamlar. 'Tümü'nün belirtilmesi, 'başlatıcı' dışındaki tüm diğer bağlamların kombinasyonuyla eşdeğerdir. "Başlatıcı" bağlamı yalnızca uygulamalar tarafından desteklenir ve başlatıcı/görev çubuğu/yuva gibi yerlerdeki uygulama simgesi tıklandığında görüntülenen içerik menüsüne menü öğeleri eklemek için kullanılır. Farklı platformlar, başlatıcı içerik menüsünde gerçekte desteklenenlere sınırlamalar getirebilir.
Enum
"all" (tümü)
"frame"
"selection"
"editable"
"image"
"video"
"audio"
"browser_action"
"page_action"
CreateProperties
Yeni içerik menüsü öğesinin özellikleri.
Özellikler
-
işaretli
boole isteğe bağlı
Onay kutusu veya radyo düğmesinin başlangıç 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ğlam
[ContextType, ...ContextType[]] isteğe bağlı
Bu menü öğesinin gösterileceği bağlamların listesi. Varsayılan olarak
['page']
değerine ayarlanır. -
documentUrlPatterns
string[] isteğe bağlı
Öğeyi yalnızca URL'si belirtilen kalıplardan biriyle eşleşen dokümanlara veya çerçevelere uygulanacak şekilde kısıtlar. Desen biçimleriyle ilgili ayrıntılar için Eşleşen Kalıplar bölümüne bakın.
-
etkin
boole isteğe bağlı
Bu içerik menüsü öğesinin etkin mi yoksa devre dışı mı olduğu. Varsayılan olarak
true
değerine ayarlanır. -
id
string isteğe bağlı
Bu öğeye atanacak benzersiz kimlik. Etkinlik sayfaları için zorunludur. Bu uzantı için başka bir kimlik ile aynı olamaz.
-
parentId
string | number isteğe bağlı
Üst menü öğesinin kimliği. Bu kimlik, öğeyi önceden eklenmiş bir öğenin alt öğesi yapar.
-
targetUrlPatterns
string[] isteğe bağlı
documentUrlPatterns
ile benzer şekilde,img
,audio
vevideo
etiketlerininsrc
özelliğine vea
etiketlerininhref
özelliğine dayalı filtreler. -
title
string isteğe bağlı
Öğede gösterilecek metin.
type
,separator
değilse bu zorunludur. Bağlamselection
olduğunda, seçilen metni göstermek için dize içinde%s
kullanın. Örneğin, bu parametrenin değeri "'%s' kelimesini Pig Latince'ye çevir" ise ve kullanıcı "güzel" kelimesini seçerse, seçime ilişkin içerik menüsü öğesi "'cool'u Pig Latince'ye çevir" olur. -
tür
ItemType isteğe bağlı
Menü öğesinin türü. Varsayılan olarak
normal
değerine ayarlanır. -
görünür
boole isteğe bağlı
Öğenin menüde görünür olup olmadığı.
-
onclick
void isteğe bağlı
Menü öğesi tıklandığında geri çağrılan bir işlev. Service Worker'ın içinde kullanılamaz. Bunun yerine,
contextMenus.onClicked
için bir işleyici 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ğlamla ilgili bilgiler.
-
sekmesinden
Tıklamanın gerçekleştiği sekmenin ayrıntıları. Bu parametre, platform uygulamaları için mevcut değildir.
-
ItemType
Menü öğesinin türü.
Enum
"normal"
"checkbox"
OnClickData
Bir içerik menüsü öğesi tıklandığında gönderilen bilgiler.
Özellikler
-
işaretli
boole isteğe bağlı
Bir onay kutusu veya radyo öğesinin tıklandıktan sonraki durumunu gösteren işaret.
-
düzenlenebilir
boolean
Öğenin düzenlenebilir olup olmadığını gösteren bir işaret (metin girişi, metin alanı vb.).
-
frameId
numara isteğe bağlı
Chrome 51 ve sonraki sürümlerBir çerçevedeyse içerik menüsünün tıklandığı öğenin çerçevenin kimliği.
-
frameUrl
string isteğe bağlı
Çerçeve içindeyse içerik menüsünün tıklandığı öğe çerçevesinin URL'si.
-
linkUrl
string isteğe bağlı
Öğe bir bağlantıysa bağlantı verdiği URL.
-
mediaType
string isteğe bağlı
İçerik menüsü bu öğe türlerinden birinde etkinleştirilmişse "resim", "video" veya "ses" değerlerinden biri.
-
dize | numara
Tıklanan menü öğesinin kimliği.
-
pageUrl
string isteğe bağlı
Menü öğesinin tıklandığı sayfanın URL'si. Tıklama, mevcut sayfanın bulunmadığı bir bağlamda (ör. başlatıcı içerik menüsü) gerçekleştiyse bu özellik ayarlanmaz.
-
parentMenuItemId
string | number isteğe bağlı
Tıklanan öğenin üst kimliği (varsa).
-
selectionText
string isteğe bağlı
Varsa bağlam seçimi metni.
-
srcUrl
string isteğe bağlı
"src" URL'sine sahip öğeler için bulunur.
-
wasChecked
boole isteğe bağlı
Bir onay kutusu veya radyo öğesinin tıklanmadan önceki durumunu gösteren işaret.
Özellikler
ACTION_MENU_TOP_LEVEL_LIMIT
Bir uzantı işlem içerik 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,
)
Yeni bir içerik menüsü öğesi oluşturur. Oluşturma sırasında bir hata oluşursa oluşturma geri çağırma işlevi tetiklenene kadar bu durum tespit edilmeyebilir. Ayrıntılar runtime.lastError
bölümündedir.
Parametreler
-
createProperties
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
number | dize
Yeni oluşturulan öğenin kimliği.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
)
Bir içerik menüsü öğesini kaldırır.
Parametreler
-
dize | numara
Kaldırılacak içerik menüsü öğesinin kimliği.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 123 ve sonraki sürümlerVaatler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırmaları kullanması gerekir.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
)
Bu uzantı tarafından eklenen tüm içerik menüsü öğelerini kaldırır.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 123 ve sonraki sürümlerVaatler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırmaları kullanması gerekir.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
Önceden oluşturulmuş bir içerik menüsü öğesini günceller.
Parametreler
-
id
dize | numara
Güncellenecek öğenin kimliği.
-
updateProperties
nesne
Güncellenecek özellikler.
contextMenus.create
işleviyle aynı değerleri kabul eder.-
işaretli
boole isteğe bağlı
-
bağlam
[ContextType, ...ContextType[]] isteğe bağlı
-
documentUrlPatterns
string[] isteğe bağlı
-
etkin
boole isteğe bağlı
-
parentId
string | number isteğe bağlı
Bu öğenin üst öğesi yapılacak öğenin kimliği. Not: Bir öğeyi, kendi alt öğesinin alt öğesi olacak şekilde ayarlayamazsınız.
-
targetUrlPatterns
string[] isteğe bağlı
-
title
string isteğe bağlı
-
tür
ItemType isteğe bağlı
-
görünür
boole isteğe bağlı
Chrome 62 ve sonraki sürümlerÖğenin menüde görünür olup olmadığı.
-
onclick
void isteğe bağlı
onclick
işlevi şu şekilde görünür:(info: OnClickData, tab: Tab) => {...}
-
bilgiChrome 44 ve sonraki sürümler
-
sekmesindenChrome 44 ve sonraki sürümler
Tıklamanın gerçekleştiği sekmenin ayrıntıları. Bu parametre, platform uygulamaları için mevcut değildir.
-
-
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 123 ve sonraki sürümlerVaatler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırmaları kullanması gerekir.
Etkinlikler
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Bir içerik menüsü öğesi tıklandığında tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(info: OnClickData, tab?: tabs.Tab) => void
-
bilgi
-
sekmesinden
tabs.Tab isteğe bağlı
-