Пример того, что я хочу сделать: в Facebook нажатие на ссылку, чтобы открыть ее на текущей вкладке, запустит некоторый Javascript, а не откроет ссылку. Однако открытие его на новой вкладке (щелчком правой кнопкой мыши или удерживанием Ctrl / Cmd) откроет ссылку без вызова какого-либо Javascript.
Я бы хотел сделать то же самое с моими ссылками (поведение ссылок зависит от цели). У меня есть обработчик события onclick return false;
, чтобы не открывать ссылку; но это приводит к тому, что Ctrl + щелчок не позволяет открыть ссылку. Как мне этого добиться?
РЕДАКТИРОВАТЬ: Я не хочу, чтобы ссылки принудительно открывались в новых окнах. ЕСЛИ ссылка открывается в новом окне, я хочу, чтобы она следовала за href
как обычно. Однако ЕСЛИ ссылка открыта в текущем окне, вместо перехода по ссылке в текущем окне , я хочу запустить некоторый Javascript.
Facebook делает это, чтобы открыть изображение во всплывающем «театре», если вы открываете его в текущем окне, и открыть его на всю страницу, если вы открываете его в новом окне.
Обратите внимание, что захват события click
для ссылок и использование preventDefault ()
или return false
приводит к сбою Cmd + Click (открыть в новой вкладке). В любом случае, это должно работать независимо от того, как открывается ссылка - щелчок, клавиша Enter и т. Д.
РЕДАКТИРОВАТЬ 2: Кажется, что hashchange
/ HTML5 pushState - правильный способ сделать это