【发布时间】:2012-04-03 06:03:18
【问题描述】:
这可能是我在做一些愚蠢的事情,但我不知道是什么。我正在尝试让一个示例 Google Chrome 页面扩展演示工作。演示的源代码可以在这里找到: http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/pageAction/
这是一个包含 2 个代码文件的简单程序 - 清单和一个 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 的页面时,没有显示任何图标。
我找到了这个答案: How do I make page_action appear for specific pages?
所以我尝试了以下-
-
创建了一个 background.html 文件:
<html><head><script> ... cut and pasted contents of background.js above </script></head></html> 将 manifest.json 更改为 manifest_version: 1 而不是 manifest_version: 2
- 将 manifest.json 中的背景属性更改为 background_page: "background.html"
效果很好。
但我绝对无法使用 background.js 文件和 manifest_version = 2 运行这个东西。
所以我想知道如何使用 manifest_version = 2 和一个 background.js 文件。另外,这很重要吗?也就是说,每个人都只是使用 manifest_version = 1 而不担心这种东西吗?
【问题讨论】:
标签: javascript google-chrome-extension