47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
// ==UserScript==
|
||
// @name setupObserver MutationObserver exapmle
|
||
// @namespace http://your.namespace.here/
|
||
// @version 0.1
|
||
// @description Your description here
|
||
// @author You
|
||
// @run-at document-end
|
||
// @match https://trello.com3/*
|
||
// @grant none
|
||
// ==/UserScript==
|
||
|
||
(async function () {
|
||
'use strict';
|
||
|
||
async function setupObserver() {
|
||
const observer = new MutationObserver((mutations) => {
|
||
mutations.forEach((mutation) => {
|
||
if (mutation.target.matches('#chrome-container > div.window-overlay > div')) {
|
||
const hasWindowClass = mutation.target.classList.contains('window');
|
||
if (hasWindowClass) {
|
||
console.log('ЕСТЬ!');
|
||
} else {
|
||
console.log('Ничего не изменилось');
|
||
}
|
||
}
|
||
});
|
||
});
|
||
|
||
const targetElement = document.querySelector('#chrome-container > div.window-overlay > div');
|
||
|
||
if (targetElement) {
|
||
observer.observe(targetElement, {
|
||
attributes: true,
|
||
subtree: true,
|
||
attributeFilter: ['class'],
|
||
});
|
||
} else {
|
||
// Если элемент еще не существует, повторно вызываем setupObserver через некоторое время
|
||
setTimeout(setupObserver, 1000);
|
||
}
|
||
}
|
||
|
||
setupObserver();
|
||
|
||
})();
|
||
|