chrome.contextMenus

Açıklama

Google Chrome'un bağlam menüsüne öğe eklemek için chrome.contextMenus API'yi kullanın. İçerik menüsü eklemelerinizin resim, köprü ve sayfa gibi nesne türleri için geçerli olup olmayacağı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österilecek 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

Bağlam menüsü öğeleri, file:// veya chrome:// URL'lerine sahip olanlar da dahil olmak üzere herhangi bir dokümanda (veya doküman içindeki bir ç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 olduğu kadar bağlam menüsü öğesi oluşturabilirsiniz. Ancak uzantınızdan birden fazlası aynı anda görünürse Google Chrome bunları otomatik olarak tek bir üst menüye sığar.

Örnekler

Bu API'yi denemek için chrome-extension-samples deposundan contextMenus 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ı" hariç diğer tüm bağlamların birleşimine eşdeğerdir. "Başlatıcı" bağlamı yalnızca uygulamalar tarafından desteklenir ve başlatıcı/görev çubuğu/yerleşim vb. içindeki 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çekten nelerin destekleneceğine dair sınırlamalar getirebilir.

Enum

"all"

"page"

"frame"

"selection"

"link"

"editable"

"image"

"video"

"audio"

"launcher"

"browser_action"

"page_action"

"işlem"

CreateProperties

Chrome 123+

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çili için true, seçilmemiş 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 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ümanlar veya çerçeveler için geçerli olacak ş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 içerik menüsü öğesinin etkin veya devre dışı olup olmadığını belirtir. 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ı

    Üst menü öğesinin kimliği. Bu, öğeyi daha önce eklenen bir öğenin alt öğesi yapar.

  • targetUrlPatterns

    string[] isteğe bağlı

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

  • title

    dize 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 dize içinde %s kullanın. Örneğin, bu parametrenin değeri "'%s'yi Pig Latin'e çevir" ise ve kullanıcı "cool" kelimesini seçerse seçimin bağlam menüsü öğesi "'cool'u Pig Latin'e ç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. Bu işlev, hizmet çalışanı 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 bilgi.

    • 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"

"radio"

"separator"

OnClickData

Bağlam menüsü öğesi tıklandığında gönderilen bilgiler.

Özellikler

  • işaretli

    boole isteğe bağlı

    Bir onay kutusunun veya radyo öğesinin tıklandıktan sonraki durumunu belirten işaret.

  • düzenlenebilir

    boolean

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

  • frameId

    number isteğe bağlı

    Chrome 51 ve sonraki sürümler

    İçerik menüsünün tıklandığı öğenin (kadrajdaysa) kadrajının kimliği.

  • 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ı

    Bu öğe türlerinden birinde içerik menüsü etkinleştirildiyse "resim", "video" veya "ses" seçeneklerinden biri.

  • menuItemId

    dize | sayı

    Tıklanan menü öğesinin kimliği.

  • pageUrl

    dize 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ünde) gerçekleştiyse bu mülk ayarlanmaz.

  • parentMenuItemId

    dize | sayı isteğe bağlı

    Tıklanan öğenin (varsa) üst öğe kimliği.

  • selectionText

    dize isteğe bağlı

    Varsa bağlam seçiminin metni.

  • srcUrl

    dize isteğe bağlı

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

  • wasChecked

    boole 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şlemi 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,
)

Yeni bir içerik menüsü öğesi oluşturur. Oluşturma sırasında bir hata oluşursa 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
  • 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()

Promise
chrome.contextMenus.remove(
  menuItemId: string | number,
  callback?: function,
)

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

Parametreler

  • menuItemId

    dize | sayı

    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

  • Promise<void>

    Chrome 123+

    Sözler Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırma işlevleri sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Sözleşme, geri çağırma işlevine iletilen türle çözülür.

removeAll()

Promise
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

  • Promise<void>

    Chrome 123+

    Sözler Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırma işlevleri sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Sözleşme, geri çağırma işlevine iletilen türle çözülür.

update()

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

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

Parametreler

  • id

    dize | sayı

    Güncellenecek öğenin kimliği.

  • updateProperties

    nesne

    Güncellenecek tesisler. 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

      dize | sayı isteğe bağlı

      Bu öğenin üst öğesi olacak öğ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 üzeri 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

    işlev isteğe bağlı

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

    () => void

İadeler

  • Promise<void>

    Chrome 123+

    Sözler Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırma işlevleri sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Sözleşme, geri çağırma işlevine iletilen türle çözülür.

Etkinlikler

onClicked

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

Bir içerik menüsü öğesi tıklandığında tetiklenir.

Parametreler