Bootstrap, в нем кнопка закрытия:
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
<svg>
....
</svg>
</button>
И кнопка для копирования текста:
<a onclick="copy('text');">
<svg>
...
</svg>
</a>
Функция для копирования текста стандартна, просто создается текстовое поле в разметке:
function copy(text) {
const textArea = document.createElement('textarea');
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
document.execCommand('copy');
document.body.removeChild(textArea);
}
Происходит непонятная ситуация, из-за которой после вызова метода textArea.select() поему-то браузер делает фокус на кнопку закрытия, а не на временный <textarea>, из-за чего текст не копируется
Проверил за пределами модалки — функция работает корректно
Полскажите, в чем может быть проблема и как такое решается?
Пробовал внутри функции делать stopPropagation() и preventDefault(), результат такой же
Попробуй не в бади а в окно положить. Возможно фокуслок срабатывает
Обсуждают сегодня