2011-06-16 9 views
38

私はChrome拡張機能を作成していますので、コード内で拡張機能のIDを取得する必要があるため、毎回手動で変更する必要はありません。これどうやってするの?あなたがローカライズでものをやっている場合は、拡張メカニックがあなたの拡張機能のIDにアクセスするためのいくつかのplaceholdersを提供するように、それが見えますJavaScriptからエクステンションのIDを取得するにはどうすればいいですか?

+0

それがインストールされています後、私は拡張機能のIDの変更を信じていないのですか?開発者の目的で「アンパック」しても、アンインストールして再インストールしない限り、同じIDを保持します。 – WesleyJohnson

+0

私はそれを開発するとき、私はid1を得ました、私はそれを公開すると、私はid2を持って、彼らは異なっている... – wong2

+2

なぜIDを取得する必要がありますか? –

答えて

61

次の2つの異なる方法で(余分な権限は必要ありません)このようにそれを得ることができます:国際化APIを使用してvar myid = chrome.runtime.id;

  • :ランタイムAPIを使用して

    1. var myid = chrome.i18n.getMessage("@@extension_id");

    が、chrome.tabs.create()(およびいくつかの他の)相対パスを理解しますが、ページを開くためにそれを必要としません。だからあなたの拡張フォルダからindex.htmlを開くために

    あなただけ使用する必要があります。

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

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

    +1

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

    +2

    よろしくお願いします。私はRTFMする必要があると思う! :) –

    9

    あなたは自分の内線にローカルファイルのURLにアクセスしようとしている場合は、次のことができますちょうど使用するchrome.extension.getURL("some file name");

    拡張機能のIDを実際に知る必要がある別の理由がある場合は、拡張機能自体の中から直接得る方法がないとは思いません。頭の上から私に届く2つの方法は、chrome.extension.getURL("some file name")を使用しています。返されたURLから拡張IDを解析するか、nameで一致を見つけてからアクセスするまで、chrome.management.getAll()を使用してインストールされたすべての拡張機能をループしますid

    関連する問題