почему alert выполняеnся раньше предыдыщих строк?
При нажатом Alt + ПКМ происходит вывод в консоль HTML элемента и ID в алерт Я хочу чтоб в консоль выводилось раньше но почему-то так не происходит.
document.addEventListener('contextmenu', function(event) {
if (event.altKey) {
event.preventDefault();
const targetElement = event.target;
const elementId = targetElement.id;
if (targetElement && targetElement.id) {
console.log(targetElement);
// копируем в буфер в обход блокиривки
var inp = document.createElement('input')
inp.value = elementId
document.body.appendChild(inp)
inp.select()
if (document.execCommand('copy')) {
//выводим
alert(elementId);
}
document.body.removeChild(inp)
}
}
});
<button id="DevON" style="">ВКЛ. </button>
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
Я хочу чтоб в консоль выводилось раньше но почему-то так не происходит.
Встречал такое объяснение этому эффекту...
По сути: технически console.log() вызывается первым. Однако перерисовка браузера или обновление консоли также занимает некоторое время. Прежде чем он успевает обновиться, уже срабатывает alert(), сообщающий: «Остановите всё до моего подтверждения». Поэтому сообщение в console.log отправляется, но визуальное подтверждение не приходит вовремя.
Пример
console.log("Привет!");
setTimeout(() => alert("Чмоки!"), 0);