Как открывать новое окно при нажатом контроле в текущей вкладке?

На иконке, обороченной в span висит обработчик onClick с функцией, которая вызывает window.open(url, '_blank', windowParams). При обычном клике открывается как надо - в текущей вкладке в новом окне, как модальное окно, но если открывать ctrl + click то открывает в новой вкладке. Как сделать так, чтобы оно открывалось всегда как модальное окно?


Ответы (2 шт):

Автор решения: School

Не проверял, но попробуй

var ctrlDown=false;
document.addEventListener('keydown', function(event) {
    if (event.ctrlKe) {
        ctrlDown=true;
    }
  }).addEventListener('keyup',function(event){
      if(event.ctrlKe){
          ctrlDown=false;
      }
  });

element.addEventListener('click',function(){
    if(ctrlDown) {
        //открыть модальное окно
    }
})
→ Ссылка
Автор решения: Setraiser

Я нашёл решение. Для того, чтобы всегда создавалось новое окно не смотря на нажатый ctrl - нужно обернуть вызов window.open в setTimeout. Что то вроде этого:

setTimeout(() => {
 window.open(url, target, params);
}, 0);
→ Ссылка