2016-03-24 15 views
0

Merhaba chrome uzantısında yeniyim. Temel krom uzantısını oluşturdum ve inline yüklemeyi kullanarak yüklemek istiyorum. Tüm düzgün çalıştığınıKrom uzantısının silinmesinden sonra bazı html öğelerini web sitesinden kaldırın

https://developer.chrome.com/webstore/inline_installation#already-installed

: Aşağıdaki bağlantıyı takip etti. Eklentinin önceden yüklenip yüklenmediğini kontrol etmek istiyorum, böylece yukarıdaki belgeyi referansladım, kullanıcı uzantıyı o anda yüklediğinde, web sitemdeki kurulum sayfama içerik komut dosyasını kullanarak yeni div ekliyoruz. Bu div varsa, uzantının zaten yüklü olduğu anlamına gelir.

ardından kod uzantısı takıldığında div ekleme için krom uzantısı benim content_script eklenir:

var isInstalledNode = document.createElement('div'); 
isInstalledNode.id = 'extension-is-installed'; 
document.body.appendChild(isInstalledNode); 

Sonra kurulum sayfası uzantısı olduğunu gösterdiğini öne DOM düğümü varlığı, kontrol edebilirsiniz

zaten yüklü: Ben ayarları/uzantılarından Uzantımı silinen her

if (document.getElementById('extension-is-installed')) { 
    document.getElementById('install-button').style.display = 'none'; 
} 

Ama bir sorunla karşı karşıya am, hala div uzantının kurulum sayfasında mevcuttur.

Uzantım silindiğinde veya tarayıcıdan kaldırıldığında div'u kaldırmak için herhangi bir hükmü var mı?

+0

Eklentinin yüklü olup olmadığını kontrol etmek için hangi kodu kullanıyorsunuz? – rafaelcpalmeida

cevap

0

management.onUninstalled olmasına rağmen, kendi uzantınız için kaldırma olayını yakalayamazsınız, diğer uzantıları/uygulamaları dinlemek için kullanılır. Daha fazla bilgi için aşağıdaki cevaba bakın: How to listen to uninstallation event in javascript from a chrome extension?

İki geçici çözüm buluyorum, ilk uzantınızın kaldırılmasını dinlemek için başka bir uzantı oluşturuyor; Başka bir kullanıcı kaldırma işlemini kaldırdıktan sonra URL'yi ziyaret etmek için runtime.setUninstallURL kullanıyor, isterseniz sunucuda bir şeyler yapabilirsiniz.

BTW, isInstalledNode için, kimliğini ayarlamanıza/ayarlamanıza gerek yoktur, çünkü web sayfasında aynı kimliğe sahip başka öğeler olabileceğinden, yalnızca düğümü oluşturmalısınız ve var olup olmadığını kontrol etmek için document.body.contains(isIntalledNode) kullanın. .

İlgili konular