/ Маніфест розширень / Chrome відповідає збігу Як співставити лише базову URL-адресу, без підсторінок - google-chrome, google-chrome-extension

Маніфест розширення Chrome відповідає тому, як відповідати лише базовій URL-адресі, а не підсторінкам - google-chrome, google-chrome-extension

Я створюю розширення Chrome для Twitter і хочу лише, щоб він впливав на сторінки на twitter.com, але не впливав на підсторінки (тобто twitter.com/mentions).

Наразі мій маніфест встановлено таким чином, але все ще стосується підсторінок.

"matches": ["http://www.twitter.com/","https://twitter.com/"],

Будь-які ідеї?

Відповіді:

0 для відповіді № 1

"Ви хочете, щоб це впливало на сторінки на twitter.com" - Звідси я припускаю, що ваш вміст скрипту оновлює інтерфейс користувача.

Тепер, якщо ви почнете зі скрипту вмісту на головній сторінці (twitter.com), ви можете досягти цього, але коли ви натискаєте на посилання на сторінці, можливі дві речі -

1) Повна сторінка оновлюється, напр. коли ви натискаєте на посилання в "Кого слідкувати" праворуч.

2) Сторінка не оновлюється, і змінюється лише вміст сторінки, наприклад, коли ви натискаєте Моменти, Сповіщення тощо.

У другому сценарії, коли сторінка не оновлюється, сценарії вмісту не оновлюються, оскільки сторінка не завантажується.

І більшість посилань у Twitter не оновлює повну сторінку, тому використання цього підходу не допоможе вам сильно у випадку Twitter.

Однак ви можете використовувати обробник подій оновлення вкладок у background.js, де ви дізнаєтесь про кожне оновлення про зміну URL-адреси вкладок.

let tabUpdateHandler = (tabId, {url: updatedUrl, status}, tab) => {
if (updatedUrl == "https://twitter.com/") {
// do anything with your extension here. like enable/disable your extension, message content script for any update etc.
}
}

chrome.tabs.onUpdated.addListener(tabUpdateHandler);

Сподіваюся, це допомагає !!