Напишите расширение chrome для console.log при каждой загрузке новой страницы URL активной вкладки - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу написать расширение Chrome, которое будет записывать текущий активный URL-адрес вкладки каждый раз, когда загружается новый сайт, и отправлять его на сервер для дальнейшего использования.До сих пор мне удалось написать следующий код: manifest.json

{
    "manifest_version": 2,
    "name": "Currenturl",
    "description": "Fetches current tab url.",
    "version": "0.1",
    "author": "Tarun Khare",
    "browser_action": {
        "default_icon": "icon.png",
        "default_title": "Just observing your current url."
    },
    "permissions": ["tabs", "activeTab"],
    "background": {
        "scripts": ["content.js"],
        "persistent": false
    }
}

content.js

chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
    var url = tabs[0].url;
    console.log("hello: "+url);
});

Я используюфоновые скрипты, так как chrome.tabs не работает в контентных скриптах.Но это расширение не печатает ничего в Chrome консоли.В чем проблема?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Я пытаюсь написать код на основе предоставленной вами информации.

const tabUpdatelistenerFun = (tabid, changeInfo, tab) => {
  const url = changeInfo.url;

  if (!url || ['chrome://', 'about://'].some(p => url.startsWith(p))) return false;

  const { index, active, highlighted, windowId } = tab;

  if (!active) return false;

  chrome.tabs.query({ index, highlighted, windowId, lastFocusedWindow: true }, () => {
    console.log(url);
  })
}

chrome.tabs.onUpdated.addListener(tabUpdatelistenerFun);

Я думаю, что это то, что вы хотите.

0 голосов
/ 21 февраля 2019
  1. Переименование файла content.js в background.js, поскольку это фоновый скрипт
  2. Использование chrome.tabs.onUpdated слушатель
  3. Посмотрите на правильную консоль: Где читать консольные сообщения из background.js?

chrome.tabs.onUpdated.addListener((tabId, change, tab) => {
  if (change.url) {
    console.log(change.url);
  }
});

Он сообщит об изменениях URL во всех вкладках.
Вы также можете ограничитьобработка только активной вкладки путем добавления проверки свойства tab.active .

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