1

我希望我的 Chrome 扩展程序出现在谷歌和亚马逊上。我的 manifest.json 看起来像这样:

{
 "background": {"scripts": ["background.js"]},
 "content_scripts": [
    {
      "matches": ["*://*.google.com/*", "http://www.amazon.com/*", "*://*.amazon.com/*"],
      "js": ["background.js"]
    }
  ],
 "name": "Denver Public Library Lookup",
 "description": "Does Stuff",
 "homepage_url": "http://www.artifacting.com",
 "icons": {
     "16": "icon-16.png",
     "48": "icon-48.png",
     "128": "icon-128.png" },
 "permissions": [
     "tabs",
     "http://*/*",
     "https://*/*"
 ],
 "version": "1.0",
 "manifest_version": 2
}

但它没有出现在谷歌或亚马逊上,我不知道为什么。

这是我的背景.js

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(tab.id, {file: "bookmarklet.js"})
});

这是 bookmarlet.js

setTimeout('x99.focus()', 300);
var re = /([\/-]|at[at]n=)/i;
if (re.test(location.href) == true) {
    var isbn = RegExp.$2;
    var x99 = window.open('http://searchsite/search/searchresults.aspx?ctx=1.1033.0.0.6&type=Keyword&term=' + atatn, 'Library', 'scrollbars=1,resizable=1,top=0,left=0,location=1,width=800,height=600');
    x99.focus();
}

有任何想法吗?谢谢你的帮助。

4

1 回答 1

1

代码中有很多错误。

  • 这里不需要内容脚本,所有操作都可以在后台页面内容中执行
  • 很难让背景页面代码在内容脚本中工作,这绝对不是你的情况。因此,至少在您的情况下,使用相同的 background.js 作为背景和内容脚本不起作用
  • 清单未声明浏览器操作。
  • 等等

我强烈建议从Google 扩展文档开始。您将节省大量时间。

我认为文件可能看起来如何

清单.json

{
 "background": {"scripts": ["background.js"]},
 "name": "Denver Public Library Lookup",
 "description": "Does Stuff",
 "homepage_url": "http://www.artifacting.com",
 "icons": {
     "16": "icon-16.png",
     "48": "icon-48.png",
     "128": "icon-128.png" },
  "browser_action": {
    "default_icon": {
      "19": "images/icon-19.png",
      "38": "images/icon-38.png"
    },
    "default_title": "Do Staff"      // optional; shown in tooltip
  },
 "permissions": [
     "tabs",
     "http://*/*",
     "https://*/*"
 ],
 "version": "1.0",
 "manifest_version": 2
}

背景.js

chrome.browserAction.onClicked.addListener(function(tab) {
  // You need more sothisticated regexp here which checks for amazon and google domains
  var re = /([\/-]|at[at]n=)/i;
  if (re.test(tab.url)) {
    var isbn = RegExp.$2;
    var url = "http://searchsite/search/searchresults.aspx?ctx=1.1033.0.0.6&type=Keyword&term=" + isbn;
    chrome.windows.create({
      url : url, 
      left: 0,
      top: 0,
      width: 800,
      height: 600,
      focused: true,
      type: "popup"
    });
  }
});

不需要 bookmarlet.js

于 2013-09-19T07:27:20.613 回答