将“#top”添加到网址的扩展程序

时间:2013-07-12 00:19:30

标签: google-chrome

好的,所以我努力让这个工作起来,我一点都不知道;这是我的清单文件:

编辑:现在更新:

{
  "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的末尾,然后刷新页面并带我到顶部。

我搞砸了什么?

1 个答案:

答案 0 :(得分: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); });