5

我正在尝试制作一个获取 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 为我工作?我是一个相对较新的人,所以如果这真的很简单而且我不明白,我很抱歉。

4

2 回答 2

1

有几点是错误的

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

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

    $(".add").html(info);
    
  • 您需要将 jQuery 命令包装到 DOM 就绪/加载时:

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

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

于 2012-10-24T19:59:45.697 回答
-1

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

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

然后它将自动包含它。我会把你的 popup.js 放在 jquery 之后,以确保首先加载 jQuery。就像:

"js": ["jquery.js", "popup.js"]
于 2012-10-24T19:10:12.530 回答