Спасибо, разобрался. Оказывается было дело в другом: поле для ввода преобразовывалось в другой элемент. Переделал код, теперь работает более-менее корректно кроме одного момента: при отправке письма на чужой домен выходит предупреждение, при нажатии на "Отмена" предупреждение закрывается и отправка останавливается, а при нажатии на "ОК" предупреждение закрывается и моментально бесконечно открывается заново, не отправляя письмо. Есть ли какие-то идеи как можно это пофиксить?
const org = '@vtb.uk';
function checkAndWarnRecipient() {
const sendButton = document.querySelector('[tabindex="570"]');
if (!sendButton) return;
sendButton.addEventListener('click', (event) => {
console.log('Send button clicked');
const tooltipElement = document.querySelector('[class^="tooltip-"][data-test-id^="tooltip-operand-"]');
const tooltipId = tooltipElement.getAttribute('data-test-id');
const emailMatch = tooltipId.match(/tooltip-operand-(.+)$/);
const email = emailMatch[1];
console.log(email);
if (emailMatch) {
console.log('OK')
} else {
console.log('Mail not found');
}
if (email.indexOf(org) === -1) {
const isConfirmed = window.confirm('ВНИМАНИЕ! Отправить сообщение на сторонний домен?');
console.log('Confirmation:', isConfirmed);
if (!isConfirmed) {
event.preventDefault();
event.stopImmediatePropagation();
event.stopPropagation();
console.log('Event prevented');
}
else {
console.log('Da');
}
}
});
}
function observeMutations() {
const targetNode = document.body;
const observer = new MutationObserver((mutationsList) => {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
checkAndWarnRecipient();
}
}
});
const config = { childList: true, subtree: true };
observer.observe(targetNode, config);
}
observeMutations()