Я пишу расширение Chrome, мне нужно получить свой идентификатор расширения в моем коде, поэтому мне не нужно менять его вручную каждый раз. Как я могу это сделать?
Как получить идентификатор моего расширения из JavaScript?
Ответ 1
Вы можете получить его так (без дополнительных разрешений) двумя способами:
-
Использование runtime api:
var myid = chrome.runtime.id;
-
Использование i18n api:
var myid = chrome.i18n.getMessage("@@extension_id");
но вам не нужно это для открытия страниц, так как chrome.tabs.create()
(и некоторые другие) понимают относительные пути.
Итак, чтобы открыть index.html
из вашей папки расширения, вы должны просто использовать:
chrome.tabs.create({url: "index.html"});
Ответ 2
Если вы делаете материал с локализацией, похоже, механики расширения предлагают "nofollow" > placeholders для доступа к вашему идентификатору расширения:
Если вы просто пытаетесь получить доступ к URL-адресам для локальных файлов на своем расширении, вы можете просто использовать chrome.extension.getURL("some file name");
Если у вас есть еще одна причина, по которой вам действительно нужно знать идентификатор расширения, я не уверен, что есть прямой способ получить его из самого расширения. Два способа, которые приходят мне в голову, используют chrome.extension.getURL("some file name")
, а затем разбор идентификатора расширения из возвращаемого URL-адреса - или используя chrome.management.getAll()
и перейдя по всем установленным расширениям до тех пор, пока вы не найдете свое совпадение на name
и затем получите доступ к id
: