#javascript #firefox-addon-webextensions
Вопрос:
Я пытаюсь создать что-то, что автоматически нажимает необходимые кнопки на сайтах типа stackexchange, чтобы я мог перестать делать это сам. Я использую сценарий контента. Я пытаюсь:
- Найдите кнопку для настройки файлов cookie
- нажмите принять (обычно все они отменяются на сайтах stackexchange).
Вот мой код до сих пор. Я думаю, что он находит нужный узел, но нажимает на него слишком рано? Я не совсем уверен, так как я новичок в js и тому подобном.
function AcceptCustomization() {
let myNode;
let observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (!mutation.addedNodes) return
for (let i = 0; i < mutation.addedNodes.length; i ) {
// do things to your newly added nodes here
let node = mutation.addedNodes[i]
if (node.nodeType === 1) {
node
var a = node.getElementsByClassName("flex--item s-btn s-btn__primary save-preference-btn-handler onetrust-close-btn-handler js-consent-banner-hide js-consent-save")[0]
if (a) {
myNode = a
console.log(myNode)
console.log(myNode.click())
}
}
}
})
})
observer.observe(document.body, {
childList: true
, subtree: true
, attributes: false
, characterData: false
})
}
function CustomizeCookies() {
var a = document.getElementsByClassName("flex--item s-btn s-btn__filled js-cookie-settings")[0];
if (a) {
a.click();
AcceptCustomization();
}
else {
console.log(a);
}
}
CustomizeCookies();
В будущем я хочу создать расширение, которое я смогу использовать для создания своего рода базы данных веб-сайтов с соответствующими нажатиями кнопок. Например, если у меня нет настройки файлов cookie для веб-сайта, я бы щелкнул расширение и запустил скрипт, который фиксирует мои нажатия на кнопки и повторяет их при каждом посещении в будущем (если это не тот же сеанс).
Спасибо 🙂
Комментарии:
1. Там нет необходимости в MutationObserver. Вот весь сценарий содержимого:
document.querySelector('.js-accept-cookies')?.click()
2. Привет @wOxxOm, спасибо за ответ! Я хочу получить что-то, что не принимает никаких файлов cookie, кроме функциональных. Прав ли я, предполагая, что мне понадобится что-то другое для большинства веб-сайтов?