Javascript 如何让google PageAction示例扩展在提供的google Chrome上工作?

Javascript 如何让google PageAction示例扩展在提供的google Chrome上工作?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,这可能是我在做一些愚蠢的事情,但我不知道是什么。我正在尝试让谷歌Chrome页面扩展示例工作。演示的来源可以在这里找到: 这是一个包含两个代码文件的简单程序-manifest和background.js文件。下面是background.js: // Called when the url of a tab changes. function checkForValidUrl(tabId, changeInfo, tab) { // If the letter 'g' is found in

这可能是我在做一些愚蠢的事情,但我不知道是什么。我正在尝试让谷歌Chrome页面扩展示例工作。演示的来源可以在这里找到:

这是一个包含两个代码文件的简单程序-manifest和background.js文件。下面是background.js:

// Called when the url of a tab changes.
function checkForValidUrl(tabId, changeInfo, tab) {
  // If the letter 'g' is found in the tab's URL...
  if (tab.url.indexOf('g') > -1) {
    // ... show the page action.
    chrome.pageAction.show(tabId);
  }
};

// Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(checkForValidUrl);
下面是manifest.json文件:

{
  "name": "Page action by URL",
  "version": "1.0",
  "description": "Shows a page action for urls which have the letter 'g' in them.",
  "background": { "scripts": ["background.js"] },
  "page_action" :
  {
    "default_icon" : "icon-19.png",
    "default_title" : "There's a 'G' in this URL!"
  },
  "permissions" : [
    "tabs"
  ],
  "icons" : {
    "48" : "icon-48.png",
    "128" : "icon-128.png"
  },
  "manifest_version": 2
}
如前所述,此代码不适用于我。Chrome可以很好地加载扩展,但当我导航到URL中带有g的页面时,没有图标显示

我找到了这个答案:

所以我尝试了以下方法-

  • 已创建background.html文件:

    <html><head><script> ... cut and pasted contents of background.js above </script></head></html>
    
    。。。剪切并粘贴上面background.js的内容
    
  • 将manifest.json更改为manifest\u版本:1,而不是manifest\u版本:2

  • 将manifest.json中的background属性更改为background\u页面:“background.html”
这很有效

但是我绝对不能用background.js文件和manifest_version=2运行这个东西


所以我想知道如何使用manifest_version=2和background.js文件。此外,这是否更重要?也就是说,是否每个人都只使用manifest_version=1,而不担心这种东西?

您使用的是哪种版本的Chrome?因为我在19号,工作很好。这些新的背景选项是在18岁时出现的,因此该示例确实应该使用
最小chrome\u版本
键来避免这个问题。如果非主干文档没有指向在这些文档所针对的Chrome版本中不起作用的示例,那也会很好


这一页说

不建议在Chrome 17或更低版本中设置清单_版本2。 如果您的扩展需要在较旧版本的Chrome中工作,请坚持使用 目前使用版本1。在这之前我们会给你充分的警告 版本1停止工作

有点恶心是吗?如果他们的Chrome版本是预清单版本2,为什么我们不能使用后台和后台页面呢?…我试过了,它抱怨后台页面与清单版本2不兼容,并且没有安装它。因此,您可能想暂时推迟使用清单版本2。

尽管阅读第2版的文档并开始使用它将要强制执行的一些实践(如无内联脚本)是一个好主意,但您正在使用哪一版本的Chrome?因为我在19号,工作很好。这些新的背景选项是在18岁时出现的,因此该示例确实应该使用
最小chrome\u版本
键来避免这个问题。如果非主干文档没有指向在这些文档所针对的Chrome版本中不起作用的示例,那也会很好


这一页说

不建议在Chrome 17或更低版本中设置清单_版本2。 如果您的扩展需要在较旧版本的Chrome中工作,请坚持使用 目前使用版本1。在这之前我们会给你充分的警告 版本1停止工作

有点恶心是吗?如果他们的Chrome版本是预清单版本2,为什么我们不能使用后台和后台页面呢?…我试过了,它抱怨后台页面与清单版本2不兼容,并且没有安装它。因此,您可能想暂时推迟使用清单版本2。

尽管阅读版本2的文档并开始使用它将要强制执行的一些实践(如无内联脚本)是一个好主意,但它会为它做好准备。

另一件可能导致此问题的事情:

我出现这个问题是因为我忘记按照示例在清单中包含declarativeContent权限


希望这能帮助某人…

另一件可能导致此问题的事情:

我出现这个问题是因为我忘记按照示例在清单中包含declarativeContent权限


希望这能帮助某人…

很好的捕获-我在ubuntu上使用chrome 17,所以我假设这就是问题所在。很好的捕获-我在ubuntu上使用chrome 17,所以我假设这就是问题所在。