Açıklama
Google Chrome'un içerik menüsüne öğe eklemek için chrome.contextMenus
API'sini kullanın. İçerik menüsüne eklediğiniz öğelerin resim, köprü ve sayfa gibi nesne türlerini 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ö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"
},
...
}
Kavramlar ve kullanım
İçerik menüsü öğeleri, file:// içerenler de dahil olmak üzere herhangi bir dokümanda (veya doküman içinde çerçevede) görünebilir
veya chrome:// URL'lerini ekleyin. Öğelerinizin hangi dokümanlarda görünebileceğini kontrol etmek için
documentUrlPatterns
alanını create()
veya update()
yöntemini çağırdığınızda
İstediğiniz kadar içerik menüsü öğesi oluşturabilirsiniz, ancak uzantınızda birden fazla öğe bulunuyorsa Google Chrome bunları otomatik olarak tek bir üst menüye daraltır.
Örnekler
Bu API'yi denemek için chrome-extension-samples bölümünden contextMenüs API örneğini yükleyin depodur.
Türler
ContextType
Bir menünün gösterilebileceği farklı bağlamlar. "Tümünü" belirleme "başlatıcı" hariç diğer tüm 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/yuvada/vb. uygulamada uygulama simgesi tıklandığında görünen 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 desteklenen öğelere sınırlamalar getirebilir.
Enum
"all"
"page"
"frame"
"selection"
"link"
"düzenlenebilir"
"image"
"video"
"audio"
"Başlatıcı"
"browser_action"
"page_action"
"action"
CreateProperties
Yeni içerik menüsü öğesinin özellikleri.
Özellikler
-
işaretli
boole isteğe bağlı
Bir onay kutusunun veya radyo düğmesinin ilk durumu: Seçilenler için
true
, seçimi kaldırılanlar 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ğlam 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. Kalıp biçimleriyle ilgili ayrıntılar için Eşleşme 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
dize isteğe bağlı
Bu öğeye atanacak benzersiz kimlik. Etkinlik sayfaları için zorunludur. Bu uzantının başka bir kimliği ile aynı olamaz.
-
parentId
string | sayı isteğe bağlı
Bir üst menü öğesinin kimliği; bu işlem öğeyi, önceden eklenen bir öğenin alt öğesi yapar.
-
targetUrlPatterns
string[] isteğe bağlı
documentUrlPatterns
özelliğine benzer şekilde,img
,audio
vevideo
etiketlerininsrc
özelliğine vea
etiketlerinhref
özelliğine dayalı filtrelerdir. -
title
dize isteğe bağlı
Öğede görüntülenecek metin;
type
,separator
değilse bu gereklidir. Bağlamselection
olduğunda, seçili metni göstermek için dize içinde%s
kullanın. Örneğin, bu parametrenin değeri "Çevir '%s' ise Pig Latin" ve kullanıcı "havalı" kelimesini seçerse, seçim için içerik menüsü öğesi "'Havalı'yı çevir" olur. Pig Latin" gibi bir ifade kullanabilirsiniz. -
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
geçersiz isteğe bağlı
Menü öğesi tıklandığında geri çağrılan bir işlev. Bu özellik, Service Worker içinde kullanılamaz. bunun yerine
contextMenus.onClicked
için bir işleyici kaydetmeniz gerekir.onclick
işlevi aşağıdaki gibi 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"
"onay kutusu"
"radyo"
"ayırıcı"
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 bir işaret.
-
düzenlenebilir
boolean
Öğenin düzenlenebilir olup olmadığını gösteren bir işaret (metin girişi, metin alanı vb.).
-
frameId
sayı isteğe bağlı
Chrome 51 ve sonraki sürümler 'nı inceleyin.Bir çerçeve içindeyse içerik menüsünün tıklandığı öğenin çerçevenin kimliği.
-
frameUrl
dize isteğe bağlı
Bir çerçeve içindeyse, içerik menüsünün tıklandığı öğe çerçevesinin URL'si.
-
linkUrl
dize isteğe bağlı
Öğe bir bağlantıysa işaret ettiği URL.
-
mediaType
dize isteğe bağlı
"image" (resim), "video" (video) veya "audio" (ses) değerlerinden biri bağlam menüsü bu öğe türlerinden birinde etkinleştirildiyse.
-
string | numara
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ı içerik menüsünde olduğu gibi geçerli sayfanın bulunmadığı bir bağlamda gerçekleştiyse bu özellik ayarlanmaz.
-
parentMenuItemId
string | sayı isteğe bağlı
Tıklanan öğenin üst kimliği (varsa).
-
selectionText
dize isteğe bağlı
Varsa bağlam seçimi metni.
-
srcUrl
dize isteğe bağlı
"src" içeren öğeler için mevcut olur URL'yi tıklayın.
-
wasChecked
boole isteğe bağlı
Onay kutusu veya radyo öğesinin tıklanmadan önceki durumunu gösteren işaret.
Özellikler
ACTION_MENU_TOP_LEVEL_LIMIT
Uzantı işlemi içerik menüsüne eklenebilecek maksimum üst düzey uzantı öğesi sayısı. Bu sınırı aşan öğeler yoksayılır.
Değer
6
Yöntemler
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
)
Yeni bir bağlam menüsü öğesi oluşturur. Oluşturma sırasında bir hata oluşursa oluşturma geri çağırması etkinleşene kadar bu hata algılanmayabilir; ayrıntıları runtime.lastError
sayfasında yer alacaktır.
Parametreler
-
createProperties
-
geri çağırma
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,
callback?: function,
)
Bir içerik menüsü öğesini kaldırır.
Parametreler
-
string | numara
Kaldırılacak içerik menüsü öğesinin kimliği.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 123 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
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
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 123 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
Önceden oluşturulan içerik menüsü öğesini günceller.
Parametreler
-
id
string | 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ğlamlar
[ContextType, ...ContextType[]] isteğe bağlı
-
documentUrlPatterns
string[] isteğe bağlı
-
etkin
boole isteğe bağlı
-
parentId
string | sayı 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
dize 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 'nı inceleyin.Öğenin menüde görünür olup olmadığı.
-
onclick
geçersiz isteğe bağlı
onclick
işlevi aşağıdaki gibi görünür:(info: OnClickData, tab: Tab) => {...}
-
bilgiChrome 44 ve sonraki sürümler 'nı inceleyin.
-
sekmesindenChrome 44 ve sonraki sürümler 'nı inceleyin.
Tıklamanın gerçekleştiği sekmenin ayrıntıları. Bu parametre platform uygulamaları için mevcut değildir.
-
-
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 123 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
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ı
-