写一个chrome扩展,以改变与保存预设的基础url



我使用5种不同环境的SAAS产品(ServiceNow)。我发现自己经常切换环境,其中唯一的区别是基本URL。

我从来没有做过任何插件的工作,所以我不确定这是否可行,但我想设置我的一些基本URL预设,并能够采取当前的URL,只是交换基地与点击一个按钮。

完全有可能。

一般方向的指针是chrome.tabs API:你可以用它来操作选项卡的URL。

ui方面,你在工具栏上有一个叫做浏览器动作的按钮;当你点击它的时候,你可以简单地做一些事情,或者你可以有一个小的UI页面从它下拉。您可能也对chrome.commands API添加快捷键感兴趣。

这是一个模拟最简单的架构:一个后台脚本,在2个基本域之间切换点击(注意,它需要"activeTab"权限)。

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, "$1"+BASE2+"/")
    });
  } else if (tab.url.match(BASE2RegExp)) {
    chrome.tabs.update(tab.id, {
      url: tab.url.replace(BASE2RegExp, "$1"+BASE1+"/")
    });        
  }
});

有许多初学者教程Chrome扩展;我建议从概览页开始。

最新更新