Email or username:

Password:

Forgot your password?
Top-level
Alexey Skobkin

@drq @Gargron
А в JS есть такое событие?

Ты предлагаешь очень запутанную штуку: на лету менять адрес открываемой ссылки в зависимости от того, какой кнопкой на неё нажали.
So much for "ожидаемое поведение".

UPD:
Жаваскриптеры используют хак вида:
if (history.length === 1) {}

Но я так понимаю, что это уже на открытой в новой вкладке странице.

7 comments
Blue

@skobkin да все должно быть просто - обычно клики на ссылки работают без жаваскрипта, средняя кнопка как открытие в новой вкладке это тоже дефолтное поведение которое так работает без какого либо вмешательства разработчика. Однако можно повесить на элемент событие click, в нем посмотреть какой кнопкой мыши был клик и если там окажется средняя то можно открыть новую вкладку с произвольным адресом а поведение по умолчанию прямо из джаваскрипта заблокировать через preventDefault. Самый сложный участок когда здесь это определение нужного url, остальное это буквально 3-4 строки @drq @Gargron

@skobkin да все должно быть просто - обычно клики на ссылки работают без жаваскрипта, средняя кнопка как открытие в новой вкладке это тоже дефолтное поведение которое так работает без какого либо вмешательства разработчика. Однако можно повесить на элемент событие click, в нем посмотреть какой кнопкой мыши был клик и если там окажется средняя то можно открыть новую вкладку с произвольным адресом а поведение по умолчанию прямо из джаваскрипта заблокировать через preventDefault. Самый сложный участок...

Alexey Skobkin

@blue @drq @Gargron
Спасибо. Я начал вспоминать как эти события работают.
Это звучит чуть менее хреново, но всё равно, как мне кажется, идёт против идеи оставлять пользователя на его сервере - люди ведь новыми вкладками могут пользоваться не осознавая децентрализованную суть федивёрса.

P.S. Этот метод ломает другую консистентность ведь, не? Нажав средней кнопкой так ты попадёшь на другой сервер, а если вызовешь контекстное меню ссылки и нажмёшь там "открыть в новой вкладке" - останешься на своём.

Blue

@skobkin хах, да, так скорее всего и произойдет и, действительно, консистенстность нарушится, по крайней мере если это нативное браузерное контекстное меню. (Кстати, пока я искал как бы это обойти нашел пост с history). Тут остается тогда либо писать своей жаваскриптовое контекстное меню, в таком случае, что плохо, инвазивно, ведет в адаптивно-кроссбраузерный гемор либо смириться( @drq @Gargron

Blue

@skobkin не возьму в толк как тут может помочь история... @drq @Gargron

Alexey Skobkin

@blue @drq @Gargron
Чуваки такой хак предлагают чтобы на уже открытой странице понять был там переход с предыдущей страницы сайта или всё-таки новая вкладка открыта.
То есть, это как я выше и сказал, не про этот кейс.

Blue

@skobkin оу... это да, это какое-то шаманство))) @drq @Gargron

Go Up