如果我想使用jquery编辑chrome扩展浏览器动作弹出窗口,我在哪里需要在程序中包含jquery才能使用它?

时间:2012-10-24 19:02:44

标签: javascript jquery google-chrome google-chrome-extension

我正在尝试创建一个获取XMLrequest的扩展并获取信息并将其写入浏览器操作弹出窗口的html页面。这可能吗?

这是我的清单文件

//manifest.json
"name":"myExtension",
"version":"1.0",
"manifest_version": 2,
"browser_action": {
    "default_icon":"favicon.ico",
    "default_popup": "popup.html"
}

我的浏览器操作弹出html文件:

<!--popup.html-->
<!DOCTYPE html>
<html>
<head>
    <title>My Title</title>
<script src="popup.js"></script>
<script src="jquery.min.js"></script>
</head>
<body>
    <p>Hello</p>
    <p class="add"></p>

</body>
</html>

我的剧本:

//popup.js

//Code up to this point gets xml info, I didn't include

var info = //string from xml request
$.(".add").html(info);

我在弹出窗口中看到了Hello段落,但是从来没有应该在add段落中的信息,当我检查控制台时,它告诉我$是未定义的。我怎样才能让jquery为我工作?我是一个相对较新的人,所以如果这很简单,我很抱歉,我不明白。

2 个答案:

答案 0 :(得分:1)

有几点是错误的

  • 添加脚本的顺序;它应该是:

    <script src="jquery.js"></script>
    <script src="popup.js"></script>
    
  • 你的选择器错了;它不应该是$.(".add")而是$(".add")

    $(".add").html(info);
    
  • 您需要将jQuery命令包装到DOM ready / on load:

    $(function() {
      var info = //string from xml request
      $(".add").html(info);
    });
    

此外,如果您不打算在那里使用脚本,则无需将脚本添加到content_scripts
您可以从后台页面和弹出窗口完全访问扩展资源。

答案 1 :(得分:-1)

您需要将它添加到manifest.json中:

content_scripts": [
 {
  "js": ["jquery.js"]
 }
]

然后会自动包含它。我会在jquery之后将你的popup.js放在那里,以确保首先加载jQuery。所以喜欢:

"js": ["jquery.js", "popup.js"]