Показать сообщение отдельно
  #3 (permalink)  
Старый 09.08.2023, 15:23
Новичок на форуме
Отправить личное сообщение для kocmohabt228 Посмотреть профиль Найти все сообщения от kocmohabt228
 
Регистрация: 03.08.2023
Сообщений: 6

Спасибо, разобрался. Оказывается было дело в другом: поле для ввода преобразовывалось в другой элемент. Переделал код, теперь работает более-менее корректно кроме одного момента: при отправке письма на чужой домен выходит предупреждение, при нажатии на "Отмена" предупреждение закрывается и отправка останавливается, а при нажатии на "ОК" предупреждение закрывается и моментально бесконечно открывается заново, не отправляя письмо. Есть ли какие-то идеи как можно это пофиксить?
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()
Ответить с цитированием