Привет, сразу к сути: иконка Google Translate раздражает пользователей, и мне захотелось скрыть надоедливую иконку.
Коротко о чем речь
Сценарий: элемент body > div:nth-child(6) > div меняется после полной загрузки страницы, добавляется еще один рандомный класс и сразу исчезает, получается class="рандомный-класс-без-пробела рандомный-класс-без-пробела".
Далее скрипт Google выполняет запрос на https:\/\/www\.gstatic\.com\/_\/translate_http.*\/m=el_main_css$ загружая стили.
Я попросил GPT-4 заблокировать https:\/\/www\.gstatic\.com\/_\/translate_http.*\/m=el_main_css$ учитывая сценарий и он мне выдал такой код:
// Создаем экземпляр MutationObserver и передаем ему функцию обратного вызова
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
// Если изменение произошло в классе и класс содержит пробел, блокируем запрос
if (mutation.attributeName === 'class') {
var circle = mutation.target;
if (circle.className.indexOf(' ') >= 0) {
(function() {
var open = window.XMLHttpRequest.prototype.open;
function openReplacement(method, url, async, user, password) {
var regex = /^https:\/\/www\.gstatic\.com\/_\/translate_http.*\/m=el_main_css$/;
if (regex.test(url)) {
console.log('Blocked a request to: ' + url);
return;
}
return open.apply(this, arguments);
}
window.XMLHttpRequest.prototype.open = openReplacement;
})();
}
}
});
});
// Указываем, какие изменения мы хотим отслеживать
var config = { attributes: true, childList: false, characterData: false };
// Запускаем наблюдение за элементом и его дочерними элементами
var targetNode = document.querySelector('body > div:nth-child(6) > div');
if (targetNode) {
observer.observe(targetNode, config);
}
Код использует MutationObserver для отслеживания изменений атрибута class элемента div и затем переопределяет метод open для объекта XMLHttpRequest, чтобы блокировать запросы к определенному URL.
(gpt)
Но это не работает :(
Возможно ли как-то скрыть иконку Google Translate? Подскажите пожалуйста, хотя бы направление куда копать/