1

好的,所以我一直在努力让它发挥作用,但我不知道;这是我的清单文件:

编辑:现在更新:

{
  "manifest_version": 2,

  "name": "To Top Button",
  "version": "0.1",
  "description": "Adds '#top' to the URL.",

  "permissions": [
    "tabs", "https://forums.robertsspaceindustries.com/*"
  ],
  "background": {
    "scripts": ["adder.js"],
    "persistent": false
  },
  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "To the top!"
  }
}

编辑:更改为 js 文件:

function updateUrl(tab){

   var currentURL = tab.url

   var newurl = currentURL.replace(currentURL + "#top");
   chrome.tabs.update(tab.id, {url: newurl});
}

chrome.browserAction.onClicked.addListener(function(tab) {updateUrl(tab);});

现在,我想要做的是,当我单击图标时,如果我在一个子页面上(https://forums.robertsspaceindustries.com/),它会在末尾添加“#top” URL,然后刷新页面并将我带到顶部。

我搞砸了什么?

4

1 回答 1

1

我认为您必须将脚本从 HTML 文件移动到 JS(根据Manifest V2 Security Changes: Inline Scripts)并将其注册到清单中。

如果你的 JS 被命名handler.js,清单应该是这样的:

{
  "manifest_version": 2,

  "name": "To Top Button",
  "version": "0.1",
  "description": "Adds '#top' to the URL.",

  "permissions": [
    "tabs", "https://forums.robertsspaceindustries.com/*"
  ],
  "background": {
    "scripts": ["handler.js"],
    "persistent": false
  },
  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "To the top!"
  }
}

至于代码,试试

function updateUrl(tab){   
   var newurl = tab.url.replace(/(#[^#]*)?$/, "#top");
   chrome.tabs.update(tab.id, {url: newurl});
}

chrome.browserAction.onClicked.addListener(function(tab) { updateUrl(tab); });
于 2013-07-12T00:42:34.883 回答