Различать ссылку, открытую в текущей вкладке, и новую вкладку

Пример того, что я хочу сделать: в Facebook нажатие на ссылку, чтобы открыть ее на текущей вкладке, запустит некоторый Javascript, а не откроет ссылку. Однако открытие его на новой вкладке (щелчком правой кнопкой мыши или удерживанием Ctrl / Cmd) откроет ссылку без вызова какого-либо Javascript.

Я бы хотел сделать то же самое с моими ссылками (поведение ссылок зависит от цели). У меня есть обработчик события onclick return false; , чтобы не открывать ссылку; но это приводит к тому, что Ctrl + щелчок не позволяет открыть ссылку. Как мне этого добиться?

РЕДАКТИРОВАТЬ: Я не хочу, чтобы ссылки принудительно открывались в новых окнах. ЕСЛИ ссылка открывается в новом окне, я хочу, чтобы она следовала за href как обычно. Однако ЕСЛИ ссылка открыта в текущем окне, вместо перехода по ссылке в текущем окне , я хочу запустить некоторый Javascript.

Facebook делает это, чтобы открыть изображение во всплывающем «театре», если вы открываете его в текущем окне, и открыть его на всю страницу, если вы открываете его в новом окне.

Обратите внимание, что захват события click для ссылок и использование preventDefault () или return false приводит к сбою Cmd + Click (открыть в новой вкладке). В любом случае, это должно работать независимо от того, как открывается ссылка - щелчок, клавиша Enter и т. Д.

РЕДАКТИРОВАТЬ 2: Кажется, что hashchange / HTML5 pushState - правильный способ сделать это

6
задан Yuri Sulyma 13 February 2012 в 11:49
поделиться