1

私は Google Chrome 拡張機能に取り組んでおり、ポップアップ HTML 内から HTML を取得して、ロードした JavaScript ファイル内の関数を呼び出したいと考えています。私のマニフェストは次のとおりです。

{
    "name": "Extension",
    "version": "1.0",
    "description": "Extension",
    "browser_action": {
        "default_icon": "icon.png",
        "default_title": "Ext",
        "popup": "popup.html"
    },
    "content_scripts": [{
        "matches": ["http://*/*"],
        "css": ["ext.css"],
        "js": ["jquery.js","scripts.js"]
    }],
    "permissions": [
        "http://*/*"
    ]
}

ご覧のとおり、私は jQuery のローカル コピーと、私自身の個人的なロジック用の別の JavaScript ファイルを読み込んでいます。私のポップアップドキュメントは次のようになります。

<select id="values">
    <option>Foo</option>
    <option>Bar</option>
</select>

そして、私のscripts.jsファイルの内容は次のとおりです。

$(function(){
  $("#values").change(function(){
    alert("Foo");
  });
});

ただし、これは私が期待していることではありません - ポップアップ HTML の値を変更するたびに「Foo」を警告します。これら 2 つのファイルを相互に通信させるにはどうすればよいですか? それとも、まったくできますか?

4

1 に答える 1

0

コンテンツ スクリプトは、読み込まれたページのコンテキストで実行されるため、そこで検索され#valuesます。コンテンツ スクリプトと残りの拡張機能の間で直接通信することはできません。メッセージング APIを使用する必要があります(そのページのすぐに使用できる例)。

于 2010-05-05T16:20:47.693 に答える