Расширения браузера Chrome: Как активировать действие страницы для всех исходящих ссылок определенной страницы? - PullRequest
1 голос
/ 20 марта 2010

Я бы хотел, чтобы действие моей страницы было активировано для всех исходящих ссылок с определенной страницы. Как я могу сделать это? Я просмотрел документы безрезультатно. Любые указатели будут оценены!

Ответы [ 2 ]

1 голос
/ 20 марта 2010
  1. Google Chrome API не имеет такого API, но необходимые функции могут быть реализованы с использованием стандартного API расширений Google Chrome.
  2. Вам необходимо реализовать скрипт содержимого
  3. Ваш скрипт контента должен изменить DOM страницы, которую вы хотите обработать, и переопределить все исходящие ссылки с вашим пользовательским javascript, который будет выполнять некоторые вещи и открывать ссылку, по которой нажимают.

Чтобы изменить ссылку href, вы можете сделать что-то вроде этого:

function processLink(element, newHref) {
  var a = document.createElement("a");
  a.href        = newHref;
  a.textContent = element.textContent;
  a.title       = element.title;

  element.parentNode.replaceChild(a, element);
}

ОБНОВЛЕНИЕ 1.

Вместо newHref вы можете сгенерировать что-то вроде

a.href = "javascript:processOutgoingLinkClick('" + element.href + "')"

Функция processOutgoingLinkClick должна содержать фактическую обработку клика.

0 голосов
/ 20 марта 2010

Просто любопытно, почему вы не используете События вкладки Chrome Extensions , которые вы можете прослушать onUpdated onCreated.Когда пользователь нажимает на ссылку на странице, она запускается и запускает событие в onUpdated.

Так что в вашем background.html вы можете сделать:

chrome.tabs.onUpdated.addListener(function(tabId, info) {
  if (info.status === 'loading')
    console.log('Loading url ... ' + info.url)
});

То же самое для onCreated,Затем во время загрузки вы можете решить, что делать с вашей страницей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...