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 hangi tür nesneler için geçerli olacağını (ör. resimler, köprüler ve sayfalar) 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 16 x 16 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, dosya:// veya chrome:// URL'leri olanlar da 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.

İhtiyacınız kadar çok 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.

Örnekler

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

Türler

ContextType

Chrome 44 veya daha yeni bir sürüm

Bir menünün görünebileceği farklı bağlamlar. "Tümü"nü belirtmek, "başlatıcı" 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 gerçekten desteklenenler konusunda sınırlamalar getirebilir.

Enum

"all"

"page"

"frame"

"selection"

"link"

"editable"

"image"

"video"

"audio"

"launcher"

"browser_action"

"page_action"

"action"

CreateProperties

Chrome 123 veya daha yeni bir sürüm

Yeni içerik menüsü öğesinin özellikleri.

Özellikler

  • işaretli

    boolean 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 olarak ['page'] değerine ayarlanır.

  • documentUrlPatterns

    string[] isteğe bağlı

    Öğenin yalnızca URL'si verilen kalıplardan biriyle eşleşen dokümanlar veya çerçeveler için geçerli olmasını 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

    boolean isteğe bağlı

    Bu içerik menüsü öğesinin etkin veya devre dışı olup olmadığı. 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ı

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

  • targetUrlPatterns

    string[] isteğe bağlı

    documentUrlPatterns'ya 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 özellik 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 Domuz Latincesi'ne çevir" ise ve kullanıcı "cool" kelimesini seçerse seçim için bağlam menüsü öğesi "cool'u Domuz Latincesi'ne çevir" olur.

  • tür

    ItemType isteğe bağlıdır.

    Menü öğesinin türü. Varsayılan olarak normal değerine ayarlanır.

  • görünür

    boolean isteğe bağlı

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

  • onclick

    void optional

    Menü öğesi tıklandığında geri çağrılan bir işlev. Bu özellik, hizmet çalışanının 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 bilgiler.

    • sekmesinden

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

ItemType

Chrome 44 veya daha yeni bir sürüm

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

    boolean isteğe bağlı

    Bir onay kutusu veya radyo öğesi tıklandıktan sonraki durumunu gösteren işaret.

  • düzenlenebilir

    boolean

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

  • frameId

    number isteğe bağlı

    Chrome 51 veya sonraki sürümler

    İçerik menüsünün tıklandığı öğenin çerçeve kimliği (çerçeve içindeyse).

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

    Bağlam menüsü bu tür öğelerden birinde etkinleştirildiyse "image" (resim), "video" (video) veya "audio" (ses) değerlerinden 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, başlatıcı bağlam menüsü gibi geçerli sayfanın olmadığı bir bağlamda gerçekleştiyse bu özellik ayarlanmaz.

  • parentMenuItemId

    dize | sayı isteğe bağlı

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

  • selectionText

    dize isteğe bağlı

    Bağlam seçimi için metin (varsa).

  • srcUrl

    dize isteğe bağlı

    "src" URL'si olan öğelerde bulunur.

  • wasChecked

    boolean 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şlem 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,
)
: number | string

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

Parametreler

  • createProperties
  • callback

    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,
)
: Promise<void>

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

Parametreler

  • menuItemId

    dize | sayı

    Kaldırılacak içerik menüsü öğesinin kimliği.

İadeler

  • Promise<void>

    Chrome 123 veya daha yeni bir sürüm

removeAll()

chrome.contextMenus.removeAll(): Promise<void>

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

İadeler

  • Promise<void>

    Chrome 123 veya daha yeni bir sürüm

update()

chrome.contextMenus.update(
  id: string | number,
  updateProperties: object,
)
: 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 mülkler. contextMenus.create işleviyle aynı değerleri kabul eder.

    • işaretli

      boolean isteğe bağlı

    • bağlamlar

      [ContextType, ...ContextType[]] isteğe bağlı

    • documentUrlPatterns

      string[] isteğe bağlı

    • etkin

      boolean isteğe bağlı

    • parentId

      dize | sayı isteğe bağlı

      Bu öğenin üst öğesi yapılacak öğenin kimliği. Not: Bir öğeyi kendi soyundan gelen bir öğenin alt öğesi olarak ayarlayamazsınız.

    • targetUrlPatterns

      string[] isteğe bağlı

    • title

      dize isteğe bağlı

    • tür

      ItemType isteğe bağlıdır.

    • görünür

      boolean isteğe bağlı

      Chrome 62 veya daha yeni bir sürüm

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

    • onclick

      void optional

      onclick işlevi şu şekilde görünür:

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

      • bilgi
        Chrome 44 veya daha yeni bir sürüm
      • sekmesinden
        Chrome 44 veya daha yeni bir sürüm

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

İadeler

  • Promise<void>

    Chrome 123 veya daha yeni bir sürüm

Etkinlikler

onClicked

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

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

Parametreler