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”。我怎样才能让这两个文件相互通信?或者他们可以吗?

4

1 回答 1

0

内容脚本在加载页面的上下文中运行,因此它将在其中查找#values. 您不能直接在内容脚本和扩展的其余部分之间进行通信。您必须使用消息传递 API(该页面上的即用型示例)。

于 2010-05-05T16:20:47.693 回答