2011-06-16 13 views
38

Piszę rozszerzenie do Chrome, muszę podać identyfikator mojego rozszerzenia w moim kodzie, więc nie muszę go ręcznie zmieniać za każdym razem. Jak mogę to zrobić?Jak uzyskać identyfikator mojego rozszerzenia z JavaScript?

+0

Nie wierzę zmienia rozszerzenia identyfikatora po jej zainstalowaniu? Nawet podczas instalacji "rozpakowanej" dla celów programistycznych zachowuje ten sam identyfikator, chyba że odinstalujesz i zainstalujesz ponownie, nie? – WesleyJohnson

+0

Kiedy go rozwijam, mam id1, kiedy go opublikuję, mam id2, są różne .. – wong2

+2

Dlaczego potrzebujesz dostać ID? –

Odpowiedz

61

można ją uzyskać w ten sposób (nie wymaga dodatkowych uprawnień) na dwa różne sposoby:

  1. Korzystanie z interfejsu API środowiska wykonawczego: var myid = chrome.runtime.id;

  2. Korzystanie i18n API: var myid = chrome.i18n.getMessage("@@extension_id");

ale nie trzeba go na stronach otwarcia, jak chrome.tabs.create() (i kilka innych) zrozumieć ścieżek względnych.

więc otworzyć index.html z folderu rozszerzeń należy po prostu użyć:

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

Skąd dowiedziałeś się o' chrome.i18n.getMessage ("@@ extension_id"); '?!? :) –

+1

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

+2

Och dzięki! Myślę, że powinienem RTFM !! :) –

9

Jeśli robisz rzeczy z lokalizacji, wygląda mechanika rozszerzeń oferują jedne placeholders dostępu swój wewnętrzny ID:

Jeśli jesteś po prostu próbuje uzyskać dostęp do adresów URL dla plików lokalnych do rozbudowy, można po prostu użyj chrome.extension.getURL("some file name");

Jeśli masz inny powód, dla którego rzeczywiście potrzebujesz znać identyfikator rozszerzenia, nie jestem pewien, czy istnieje prosty sposób na uzyskanie go z samego rozszerzenia. Dwa sposoby, które przychodzą do mnie z góry mojej głowy, używają chrome.extension.getURL("some file name"), a następnie analizują identyfikator rozszerzenia z tego zwróconego adresu URL - lub używają chrome.management.getAll() i przechodzą przez wszystkie zainstalowane rozszerzenia, dopóki nie znajdziesz swojego za pomocą dopasowania na name, a następnie dostęp do id:

Powiązane problemy