Я экспериментировал с расширениями Chrome, пытаясь создать такое, которое могло бы блокировать и перенаправлять веб-сайт в зависимости от его названия.В этом примере, когда заголовок любой веб-страницы имеет значение «Microsoft - официальная домашняя страница», я хочу, чтобы он перенаправлялся на https://example.com/.. Пример кода, который я привел ниже, почти работает, проблема в том, что мне нужно обновить страницув первый раз, когда я иду на него, иначе он не перенаправляет меня на example.com.Почему он не перенаправляет меня в первый раз, когда видит страницу с указанным заголовком без необходимости ее обновления, и что мне с этим делать?
background.js:
// Listens for a change to occur.
chrome.tabs.onUpdated.addListener(function() {
// Gets the URL and title of the webpage in the selected tab.
chrome.tabs.getSelected(function(tab) {
var currentUrl = tab.url;
var currentTitle = tab.title;
// Tests if the page title is equal to the given string.
if(currentTitle == "Microsoft - Official Home Page") {
chrome.webRequest.onBeforeRequest.addListener(
function() {
return {redirectUrl: "https://example.com/"};
},
{urls: [currentUrl]}, // Blocks the URL of the current tab.
["blocking"]
);
}
}
}
manifest.json:
{
"name": "Test Extension",
"version": "1.0",
"description": "An extension to block sites by title.",
"permissions": [
"tabs",
"tabCapture",
"webRequest",
"webRequestBlocking",
"<all_urls>"
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"manifest_version": 2
}