chrome.contextMenus

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

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:// veya chrome:// URL'leri 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.

İ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.

Örnekler

Bu API'yi denemek için chrome-extension-samples deposundan contextMenüs API örneğini yükleyin.

Türler

ContextType

Chrome 44 ve sonraki sürümler

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

Chrome 123 ve sonraki sürümler

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çin false. 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 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 değilse bu zorunludur. Bağlam selection 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

Chrome 44 ve sonraki sürümler

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ümler

    Bir ç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.

  • menuItemId

    string|number

    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|string

    Yeni oluşturulan öğenin kimliği.

remove()

Söz
chrome.contextMenus.remove(
  menuItemId: string|number,
  callback?: function,
)

Bir içerik menüsü öğesini kaldırır.

Parametreler

  • menuItemId

    string|number

    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ümler

    Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.

removeAll()

Söz
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ümler

    Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.

update()

Söz
chrome.contextMenus.update(
  id: string|number,
  updateProperties: object,
  callback?: function,
)

Önceden oluşturulmuş bir içerik menüsü öğesini günceller.

Parametreler

  • id

    string|number

    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)=> {...}

      • bilgi
        Chrome 44 ve sonraki sürümler
      • sekmesinden
        Chrome 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ümler

    Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, 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