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