编写 chrome 扩展以使用保存的预设更改基础 url
Writing a chrome extension to change base url with saved presets
我在 5 个不同的环境中使用 SAAS 产品 (ServiceNow)。我发现自己经常切换环境,唯一不同的是基础 URL。
我从来没有做过任何插件工作,所以我不确定这是否可行,但我想设置一些基本 URL 预设并能够采用当前 URL 然后只需单击一个按钮即可交换底座。
完全有可能。
一般方向的指针是 chrome.tabs
API:您将能够用它来操纵选项卡的 URL。
UI-wise,你会在工具栏上得到一个名为 Browser Action; you can simply do something when you click on it, or you can have a small UI page drop down from it. You may also be interested in chrome.commands
API 的按钮来添加键盘快捷键。
这里是最简单架构的模拟:点击时在 2 个基域之间切换的后台脚本(请注意,它需要 "activeTab"
permission)。
var BASE1 = "example.com";
var BASE2 = "example.org";
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\]/g, '\$&');
}
function baseToRegExp(base) {
return new RegExp("^(https?:\/\/[^\/]*)(" + escapeRegExp(base) + ")/");
}
var BASE1RegExp = baseToRegExp(BASE1);
var BASE2RegExp = baseToRegExp(BASE2);
chrome.browserAction.onClicked.addListener(function(tab) {
if (tab.url.match(BASE1RegExp)) {
chrome.tabs.update(tab.id, {
url: tab.url.replace(BASE1RegExp, ""+BASE2+"/")
});
} else if (tab.url.match(BASE2RegExp)) {
chrome.tabs.update(tab.id, {
url: tab.url.replace(BASE2RegExp, ""+BASE1+"/")
});
}
});
有很多 Chrome 扩展的初学者教程;我建议从 Overview page.
开始
我在 5 个不同的环境中使用 SAAS 产品 (ServiceNow)。我发现自己经常切换环境,唯一不同的是基础 URL。
我从来没有做过任何插件工作,所以我不确定这是否可行,但我想设置一些基本 URL 预设并能够采用当前 URL 然后只需单击一个按钮即可交换底座。
完全有可能。
一般方向的指针是 chrome.tabs
API:您将能够用它来操纵选项卡的 URL。
UI-wise,你会在工具栏上得到一个名为 Browser Action; you can simply do something when you click on it, or you can have a small UI page drop down from it. You may also be interested in chrome.commands
API 的按钮来添加键盘快捷键。
这里是最简单架构的模拟:点击时在 2 个基域之间切换的后台脚本(请注意,它需要 "activeTab"
permission)。
var BASE1 = "example.com";
var BASE2 = "example.org";
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\]/g, '\$&');
}
function baseToRegExp(base) {
return new RegExp("^(https?:\/\/[^\/]*)(" + escapeRegExp(base) + ")/");
}
var BASE1RegExp = baseToRegExp(BASE1);
var BASE2RegExp = baseToRegExp(BASE2);
chrome.browserAction.onClicked.addListener(function(tab) {
if (tab.url.match(BASE1RegExp)) {
chrome.tabs.update(tab.id, {
url: tab.url.replace(BASE1RegExp, ""+BASE2+"/")
});
} else if (tab.url.match(BASE2RegExp)) {
chrome.tabs.update(tab.id, {
url: tab.url.replace(BASE2RegExp, ""+BASE1+"/")
});
}
});
有很多 Chrome 扩展的初学者教程;我建议从 Overview page.
开始