@danilduck

Как отловить открытие страницы в новой вкладке при ajax роутинге?

Сам роутинг работает, но в текущей версии нельзя открыть ссылку в новой вкладке зажав ctrl или сmd -- оно отрабатывается как обычный клик. (Если делать через ПКМ -- все ок, все работает)
Как определить, что пользователь хочет открыть страницу в новой вкладке?

<a href="/" onclick="return ProfileManager.Routing(this,'index');">
Главная
</a>

Routing: function (a, page) {
        ...
        if ("_blank" == a.target) {
            return;
        } else {
            try {
                window.history.pushState("", null, a.href);
                window.history.replaceState("", null, a.href);
                return false;
            } catch (e) {
                //window.location.hash = 'sdf';
                return false;
            }
        }
    }
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
AlexMaxTM
@AlexMaxTM
Вы отслеживаете только одно событие onclick - это нажатие мыши. Если хотите получить комбинации клика с зажатыми клавишами, тогда еще нужно отслеживать все необходимые события.
Например.
<p onclick="selectMe(1)" oncontextmenu="selectMe(2)">Click me</p>

$(document).keydown(function(event){
    if(event.which=="17")
        cntrlIsPressed = true;
});

$(document).keyup(function(){
    cntrlIsPressed = false;
});

var cntrlIsPressed = false;


function selectMe(mouseButton)
{
    if(cntrlIsPressed)
    {
        switch(mouseButton)
        {
            case 1:
                alert("Cntrl +  left click");
                break;
            case 2:
                alert("Cntrl + right click");
                break;
            default:
                break;
        }
    }


}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы