好的,所以我努力让这个工作起来,我一点都不知道;这是我的清单文件:
编辑:现在更新:
{
"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的末尾,然后刷新页面并带我到顶部。
我搞砸了什么?
答案 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); });