Chrome扩展程序中的jGrowl问题

时间:2013-04-08 03:30:00

标签: jquery google-chrome jgrowl

我已经搜索了一段时间,我似乎无法找到答案。

我正在开发一个Chrome扩展程序,可在特定页面打开时提醒用户。我正在使用默认的javascript警报,但它只是说,不是最吸引人的UI选项。我也试过了实验性的铬信息棒。那些工作非常好,但是,你不能用实验api发布Extensions。

然后我找到了jGrowl。这真是棒极了。它完全符合我的要求。我可以设法让jGrowl在网页上工作,但不能扩展。我想这是一个问题,jQuery没有被加载到后台页面或jGrowl页面上。我不知道,这个Chromium文件问题很时髦。无论如何,这是我的代码。

的manifest.json

{
  "name" : "jGrowl Test",
  "version" : "1.0",
  "description" : "Makes jGrowl work.",
  "background" : {
    "page": "background.html"
  },
  "permissions": [
"tabs",
"http://*/*",
"https://*/*",
    "<all_urls>",
  ],
  "content_scripts" : [
    {
      "matches" : [
        "http://*/*",
        "https://*/*"
      ],
      "js" : ["jquery.js"],
      "run_at" : "document_idle",
      "all_frames" : false
    }
  ]
  "manifest_version": 2    
}

background.html

jGrowl样式是从jGrowl下载中复制的样式。我没有对其进行编辑,只是将其粘贴到<stlye>代码中,因为Chrome扩展程序无法读取<link...>代码。

jquery.js只是本地文件中的jQuery thingy。 (v.1.9.1)

jquery.jgrowl.js是jGrowl代码。它尚未编辑。

<html>
  <head>
        <style>
           ...jGrowl styling...
        </style>
        <script src='jquery.js'></script>
        <script src="jquery.jgrowl.js"></script>
        <script src="background.js"></script>
  </head>
</html>

background.js

$(document).ready(function() 
{
   $.jGrowl("Hello world!");
});

我知道jQuery有效。我可以在document.ready部分使用基本的javascript警报,它可以正常工作。我甚至可以将警报放在jquery.jgrowl.js文件中。仍然有效。

当我将Extension文件上传到服务器或在我的计算机上运行时,jGrowl可以正常工作。 (我运行background.html

我的问题是:

我做错了什么?如何在扩展调用时显示jGrowl?在任何页面?

PS。我应该在jquery.js部分和content_scripts中加入background.html还是过度杀戮?

1 个答案:

答案 0 :(得分:1)

您的清单上有一些语法错误,另外您似乎没有加载jGrowl或您的background.js。您还需要包含样式表以使通知可见。纠正这些事情将使jGrowl正常工作。

请查看我使用jGrowl的工作实例准备的这个github存储库作为Chrome扩展: https://github.com/stanlemon/jgrowl-chrome-ext

您应该能够克隆它,然后使用克隆文件夹中的“加载解压缩的扩展名”选项开始。

如果您有任何疑问,请随时给我发电子邮件,您可以在GitHub上找到我的联系信息。