2012-12-06 16 views
5

chrome.contextMenus için dört yöntem sadece vardır:Chrome Uzantım tarafından bir içerik menüsü öğesinin zaten oluşturulup oluşturulmadığını nasıl izlerim?

create 
update 
remove 
removeAll 

ben bir menü zaten oluşturulmuş olup olmadığını kontrol nasıl merak ediyorum?

bu çalıştı:

try { 
    chrome.contextMenus.update("byname", {}); 
} catch (e) { 
// doesn't exist 
} 

Ama hata yakalandı (ama konsolda gösterilir) edilemez görünüyor.

Her türlü ipucu için teşekkürler!

+0

Görünüşe göre 'catch' çalışmadı çünkü .update() çağrısı bir uyumsuzdur ve [chrome.contextMenu.create() dokümanlar] 'a göre hata durumunuzu yalnızca bir geri arama içinde alabilirsiniz. (https://developer.chrome.com/extensions/contextMenus#method-create): "Oluşturma sırasında bir hata meydana gelirse, yaratma geri çağrısı tetiklenene kadar öğrenemeyeceğinizi unutmayın (ayrıntılar chrome.runtime içinde olur. LastError)." –

cevap

3

Her chrome.contextMenus.create numaralı çağrı, benzersiz bir tanımlayıcı döndürür. Bunları takip etmek için bu tanımlayıcıları bir dizi veya karma olarak saklayın.

+0

Teşekkürler, ancak bir kimliğin contextMenuItem ile önceden bağlanmış olup olmadığını nasıl anlarım? Örneğin, kullanıcı seçenek sayfamdaki bir düğmeyi tıkladığında, özelleştirilmiş bir içerik menüsü öğesi oluşturabilir, ancak kullanıcı iki seçenek sayfasını açar ve düğmeyi iki kez tıklarsa, iki bağlam menüsü öğesi oluşturur. Önemli olan, maddenin zaten mevcut olup olmadığını kontrol etmektir, eğer öyleyse, yeni bir tane yaratmaya gerek yok. Ama benim için şu anki problem, nasıl kontrol edeceğimi bilmiyorum. Teşekkürler! –

+0

@AwQiruiGuo Kimlik bilgilerini arka plan sayfasıyla ('chrome.runtime.getBackgroundPage()'] (http://developer.chrome.com/extensions/runtime.html#method-getBackgroundPage) paylaşabilirsiniz (olay kullanıyorsanız sayfalar) veya ['chrome.extension.getBackgroundPage()'] (http://developer.chrome.com/extensions/extension.html#method-getBackgroundPage) –

+0

Evet, bunu biliyorum. Benim sorum sadece basit, nasıl Bir kimliğin oluşturulup oluşturulmadığını biliyor muyum? Örneğin, yeni bir öğe oluşturuyorum ve sistem bana bir ID 5 getiriyor, sonra başka bir tane oluşturduğumda, # 5'in zaten var olup olmadığını kontrol etmek istiyorum. –

İlgili konular