2011-06-16 28 views
38

Bir Chrome uzantısı yazıyorum, uzantım kimliğimi koduma eklemem gerekiyor, bu yüzden her seferinde manuel olarak değiştirmem gerekiyor. Bunu nasıl yapabilirim? Eğer sadece uzantısına yerel dosyasının URL'sini erişmeye çalışıyorsanızUzantımın kimliğimi nasıl alabilirim?

yapabilirsiniz: uzatma mekaniği sizin uzantı kimliğini erişmek için bazı placeholders teklif gibi

+0

Ben uzantının kimliği değişiklikleri inanmıyorum:

Yani sadece kullanmalısınız Uzantınız klasöründen index.html açmak için? Dev amaçları için "paketlenmemiş" kurarken bile, kaldırma ve yeniden yükleme yapmadıkça aynı kimliği korur, hayır? – WesleyJohnson

+0

Bunu geliştirdiğimde, id1 aldım, yayınladığımda, id2 aldım, farklılar .. – wong2

+2

Neden kimliği almanız gerekiyor? –

cevap

61

iki farklı şekilde (hiçbir ekstra izinler gerekli) şöyle elde edebilirsiniz: i18n api kullanarak var myid = chrome.runtime.id;

  • : çalışma zamanı api kullanarak

    1. (ve bazı diğerleri) göreli yolları anlamaya olarak

    ancak, açılış sayfaları için buna ihtiyacı yoktur. yükledikten sonra

    chrome.tabs.create({url: "index.html"}); 
    
  • +0

    chrome.i18n.getMessage (" @@ extension_id ");'?! :) –

    +1

    @JohnS Bkz. Http://code.google.com/chrome/extensions/dev/i18n.html#overview-predefined – serg

    +2

    Ah teşekkürler! Ben RTFM gerektiğini düşünüyorum! :) –

    9

    Eğer yerelleştirme ile şeyler yapıyorsanız, görünüşe Yalnızca şu uzantının kimliğini bilmesi için başka bir nedeniniz varsa, uzantının kendisinden doğru bir şekilde alınmasının doğru bir yolu olmadığından emin değilim. Başımın üst kısmından bana gelen iki yol, chrome.extension.getURL("some file name")'u kullanıyor ve sonra bu URL'den - veya chrome.management.getAll()'u kullanarak uzantı kimliğini ayrıştırıyor ve name'da bir eşleşme kullanarak sizinkini bulana kadar tüm yüklü uzantılar arasında döngü yapıyor ve sonra erişiyor id:

    İlgili konular