chrome.contextMenus

refresh date: 2026-09-25 robots: noindex

Açıklama

Google Chrome'un bağlam menüsüne öğe eklemek için chrome.contextMenus API'sini kullanın. Bağlam menüsü eklemelerinizin hangi nesne türleri (ör. resimler, köprüler ve sayfalar) için geçerli olacağını seçebilirsiniz.

İzinler

contextMenus

Kullanım

Bağlam menüsü öğeleri, file:// veya chrome:// URL'leri olanlar da dahil olmak üzere tüm dokümanlarda (veya doküman içindeki çerçevelerde) 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.

İhtiyacınız olduğu kadar 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.

Manifest

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 16x16 piksellik 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 contextMenus API örneğini yükleyin.

Türler

ContextType

Chrome 44+

Menünün görünebileceği farklı bağlamlar. "all" değerini belirtmek, "launcher" ve "tab" 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 nelerin desteklendiği konusunda sınırlamalar getirebilir.

Enum

"all"

"page"

"frame"

"selection"

"link"

"editable"

"image"

"video"

"audio"

"launcher"

"action"
Uzantının işleminin bağlam menüsü (araç çubuğu simgesi) için geçerlidir.

"tab"
Sekme şeridindeki bir sekmenin bağlam menüsü için geçerlidir.

CreateProperties

Chrome 123 ve sonraki sürümler

Yeni bağlam menüsü öğesinin özellikleri.

Özellikler

  • işaretli

    boole isteğe bağlı

    Onay kutusunun veya radyo düğmesinin ilk durumu: Seçili için true, seçili değil için false. 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 değer: ['page'].

  • documentUrlPatterns

    string[] isteğe bağlı

    Öğeyi, yalnızca URL'si verilen kalıplardan biriyle eşleşen dokümanlara veya çerçevelere uygulanacak şekilde 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

    boole isteğe bağlı

    Bu bağlam menüsü öğesinin etkin veya devre dışı olup olmadığı. Varsayılan değer: true.

  • id

    string isteğe bağlı

    Bu öğeye atanacak benzersiz kimlik. Etkinlik sayfaları için zorunludur. Bu uzantının başka bir kimliğiyle aynı olamaz.

  • parentId

    string | number isteğe bağlı

    Ebeveyn menüsü öğesinin kimliği; bu, öğeyi daha önce eklenen bir öğenin alt öğesi yapar.

  • targetUrlPatterns

    string[] isteğe bağlı

    documentUrlPatterns özelliğine benzer şekilde, img, audio ve video etiketlerinin src özelliğine ve a etiketlerinin href özelliğine dayalı filtreler.

  • title

    string isteğe bağlı

    Öğede gösterilecek metin. type, separator olmadığı sürece bu zorunludur. Bağlam selection olduğunda, seçili metni göstermek için dizede %s kullanın. Örneğin, bu parametrenin değeri "'%s' ifadesini Pig Latin diline çevir" ise ve kullanıcı "cool" kelimesini seçerse seçim için bağlam menüsü öğesi "'cool' ifadesini Pig Latin diline çevir" olur.

  • tür

    ItemType isteğe bağlı

    Menü öğesinin türü. Varsayılan değer: normal.

  • görünür

    boole isteğe bağlı

    Öğenin menüde görünür olup olmadığını belirtir.

  • onclick

    void isteğe bağlı

    Menü öğesi tıklandığında geri çağrılan bir işlev. Bu özellik, hizmet çalışanında kullanılamaz. Bunun yerine contextMenus.onClicked için bir dinleyici kaydetmeniz gerekir.

    onclick işlevi şu şekildedir:

    (info: OnClickData, tab: Tab) => {...}

    • bilgi

      Tıklanan öğe ve tıklamanın gerçekleştiği bağlam hakkında bilgi.

    • sekme

      Tıklamanın gerçekleştiği sekmenin ayrıntıları. Bu parametre, platform uygulamalarında mevcut değildir.

ItemType

Chrome 44+

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

    boole isteğe bağlı

    Tıklandıktan sonra bir onay kutusunun veya radyo öğesinin durumunu gösteren işaret.

  • düzenlenebilir

    boole

    Öğenin düzenlenebilir olup olmadığını (metin girişi, metin alanı vb.) gösteren bir işaret.

  • frameId

    number isteğe bağlı

    Chrome 51+

    Bağlam menüsünün tıklandığı öğenin çerçeve kimliği (bir çerçeve içindeyse).

  • frameUrl

    string isteğe bağlı

    Bağlam menüsünün tıklandığı öğenin çerçevesinin URL'si (bir çerçeve içindeyse).

  • linkUrl

    string isteğe bağlı

    Öğe bir bağlantıysa işaret ettiği URL.

  • mediaType

    string isteğe bağlı

    Bağlam menüsü bu tür öğelerden birinde etkinleştirildiyse "image", "video" veya "audio" değerlerinden biri.

  • menuItemId

    dize | sayı

    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 olmadığı bir bağlamda (ör. başlatıcı bağlam menüsü) gerçekleşirse 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 için metin.

  • srcUrl

    string isteğe bağlı

    "src" URL'si olan öğeler için mevcut olur.

  • wasChecked

    boole isteğe bağlı

    Tıklanmadan önce bir onay kutusunun veya radyo öğesinin durumunu gösteren işaret.

Özellikler

ACTION_MENU_TOP_LEVEL_LIMIT

Bir uzantı işlemi bağlam 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,
)
: number | string

Yeni bir bağlam menüsü öğesi oluşturur. Oluşturma sırasında bir hata meydana gelirse bu hata, oluşturma geri çağırma işlevi tetiklenene kadar algılanmayabilir. Ayrıntılar runtime.lastError içinde yer alır.

Parametreler

  • createProperties
  • callback

    function isteğe bağlı

    callback parametresi şu şekilde görünür:

    () => void

İadeler

  • sayı | dize

    Yeni oluşturulan öğenin kimliği.

remove()

Taahhüt
chrome.contextMenus.remove(
  menuItemId: string | number,
  callback?: function,
)
: Promise<void>

Bağlam menüsü öğesini kaldırır.

Parametreler

  • menuItemId

    dize | sayı

    Kaldırılacak bağlam menüsü öğesinin kimliği.

  • callback

    function isteğe bağlı

    callback parametresi şu şekilde görünür:

    () => void

İadeler

  • Promise<void>

    Chrome 123 ve sonraki sürümler

    Bağlam menüsü kaldırıldığında çözümlenir.

    Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.

removeAll()

Taahhüt
chrome.contextMenus.removeAll(
  callback?: function,
)
: Promise<void>

Bu uzantı tarafından eklenen tüm bağlam menüsü öğelerini kaldırır.

Parametreler

  • callback

    function isteğe bağlı

    callback parametresi şu şekilde görünür:

    () => void

İadeler

  • Promise<void>

    Chrome 123 ve sonraki sürümler

    Kaldırma işlemi tamamlandığında çözülür.

    Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.

update()

Taahhüt
chrome.contextMenus.update(
  id: string | number,
  updateProperties: object,
  callback?: function,
)
: 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 ö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 | 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ığını belirtir.

    • onclick

      void isteğe bağlı

      onclick işlevi şu şekildedir:

      (info: OnClickData, tab: Tab) => {...}

      • bilgi
        Chrome 44+
      • sekme
        Chrome 44+

        Tıklamanın gerçekleştiği sekmenin ayrıntıları. Bu parametre, platform uygulamalarında mevcut değildir.

  • callback

    function isteğe bağlı

    callback parametresi şu şekilde görünür:

    () => void

İadeler

  • Promise<void>

    Chrome 123 ve sonraki sürümler

    Bağlam menüsü güncellendiğinde çözümlenir.

    Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.

Etkinlikler

onClicked

chrome.contextMenus.onClicked.addListener(
  callback: function,
)

Bir bağlam menüsü öğesi tıklandığında tetiklenir.

Parametreler