Вы имеете в виду любопытный код вроде:
<noscript>
<img height="1" width="1" alt="" style="display:none"
src="https://www.facebook.com/tr?id=redacted&ev=PageView&noscript=1">
</noscript>
??
Я не знаю, как отключить оценку <noscript>
, но в приведенном выше примере вы могли бы написать короткое расширение для браузера, чтобы отменить любой запрос с помощью URL, содержащего подстроку facebook.com/tr?
,
См. Chrome.webRequest для описания API браузера Chrome для просмотра, изменения или блокировки запросов в полете.
Вот рабочий пример:
manifest.json:
{
"name": "Website Blocker",
"description": "Keeps the browser from fetching tracking URLs",
"version": "1.0",
"manifest_version": 2,
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*.facebook.com/tr?*"
],
"background": {
"scripts": [
"script.js"
],
"persistent": true
},
"icons": {
"256": "world-blocker.png"
},
"converted_from_user_script": true
}
script.js:
"use strict"
console.log("Website Blocker is running!");
var re = new RegExp('https?://.*?\.?facebook.com/tr\?', 'i');
function checkUrl(details) {
var cancel = !!details.url.match(re);
if (!cancel)
console.log(`Passing ${details.url}`);
return {cancel: cancel};
}
chrome.webRequest.onBeforeRequest.addListener(
checkUrl,
{urls: ['*://*.facebook.com/tr?*']},
['blocking']
);
Используйте все, что вы хотите для значка. Или удалите его, и пусть браузер предоставит фиктивный. Его единственная роль заключается в выделении записи расширения на странице chrome://extensions
.
Расширение отлично работало на рассматриваемой странице. Журнал консоли страницы содержит сообщение об ошибке net::ERR_BLOCKED_BY_CLIENT
для выборки изображения. Аналогично, красная линия сбоя на вкладке Сеть.
Кроме того, предварительная фильтрация URL работает хорошо. JavaScript вызывается только для определенного URL-адреса отслеживания. Проверяя консоль расширения, я не вижу сообщений "Passing ...", даже когда захожу на Facebook.