Изменить текущий URL в Chrome с помощью регулярного выражения - PullRequest
2 голосов
/ 26 января 2010

Когда в Chrome вводится устаревший URL-адрес, его следует заменить на обновленный URL-адрес на основе регулярного выражения или аналогичного.

Я бы хотел сделать следующее

  1. Введите правило для системы, которое заменяет «olddomain.com» на «newdomain.com»
  2. Введите URL-адрес, например "olddomain.com/stuff", в Chrome
  3. Chrome изменяет URL-адрес на "newdomain.com/stuff" и загружает страницу
  4. Повторите 2 и 3

Но я не знаю, возможно ли это вообще. Любой намек на то, где искать?

Ответы [ 2 ]

5 голосов
/ 29 января 2010

Выбранное решение заключалось в разработке небольшого расширения для Chrome, которое вставляет кнопку рядом с адресной строкой.

Основной код указан ниже.

manifest.json

{
  "name": "My First Extension",
  "version": "1.0",
  "description": "The first extension that I made.",
  "background_page": "dostuff.html",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
    "tabs", "http://*.google.com/", "https://*.google.com/" ]
}

dostuff.html

<html>
  <script>
var sciencedirectold = /sciencedirect.com\//;
var sciencedirectnew = "sciencedirect.com.proxy1-bib.sdu.dk:2048/";

function updateUrl(tab){
  if(tab.url.match(sciencedirectold))
  {
      var newurl = tab.url.replace(sciencedirectold, sciencedirectnew);
      chrome.tabs.update(tab.id, {url: newurl});
  }
}

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

  </script>
</html>
0 голосов
/ 29 января 2010

Изменено из соответствующего ответа

chrome.tabs.getSelected(null, function (tab){
  var tabUrl = tab.url;
  // First parameter is the regex, second one is the replacement.
  tabUrl = tabUrl.replace(/([abcde])+/g, "$1");
  chrome.tabs.update(tab.id, {url: tabUrl});
});

Обратите внимание, что я мало что знаю о разработке Chrome, но я знаю о JavaScript, так что это, вероятно, сработает.

...