2013-04-11 2 views
3

Я хочу, чтобы мои ссылки выглядели как законные URL-адреса, но ведут себя по-другому, например, перейдите к некоторому URL-адресу отслеживания, который я определяю, когда происходит событие щелчка. Когда я нажимаю ссылку левой кнопкой мыши, я могу поймать ее обработчиком .click() и изменить href на что-то еще. Когда я щелкнул правой кнопкой мыши, он не будет пойман с помощью .click(), но я могу использовать .mousedown() и .mouseup(), что является лишь частичным решением моей проблемы.Обнаружить щелчок правой кнопкой мыши «открыть в новой вкладке» по ссылке в jQuery?

Дело в том, что я хочу убедиться, что когда кто-то щелкнет правой кнопкой мыши по ссылке, ссылка все равно будет выглядеть законной, но когда он захочет открыть ссылку на новой вкладке, я поймаю это событие и HREF. В конце, когда произошло фактическое событие клика по ссылке, href будет возвращен к оригиналу. URL-адрес, где они на самом деле идут, что-то делает и перенаправляет их на реальный URL-адрес, но это происходит очень быстро. Таким образом, цель этой функции - обмануть пользователей и отслеживать их клики. Facebook делает это, но как они обрабатывают правые клики и «открывают новую вкладку»?

Хорошо, не получить в любом месте без какого-либо кода, я думаю .. некоторый код я прямо сейчас:

link = $(selectorName); 
    var original_link = link.attr("href"); 
    link.click(function(){ 
     link.attr("href", "/track_and_redirect"); 
    }).mousedown(function(event) { 
     switch (event.which) { 
      case 3: 
       //alert('Right mouse button pressed'); 
       link.attr("href", "/track_and_redirect"); 
       break; 
      default: 
     } 
    }).mouseleave(function(){ 
     link.attr("href", original_link); 
    }); 

В настоящее время, когда вы щелкните правой кнопкой мыши по ссылке, новый URL будет отображаться в браузере углу , как мне обойти это?

+1

Вы говорите, что фактическая ссылка, которую вы хотите отправить их не «законно» тогда? – musefan

+1

* «Я хочу, чтобы мои ссылки выглядели как правильные URL-адреса, но ведут себя по-другому, например, перейдите к некоторому URL-адресу отслеживания, который я определяю». Не делайте этого. Только не надо. Сделайте то, что делает Google на странице результатов поиска. Сделайте ссылку, чтобы перейти на страницу отслеживания, которая перенаправляется на цель. (И даже то, что они делают, немного злобно, потому что, когда вы наводите ссылку, то, что вы видите в строке состояния, не является реальной ссылкой, которую вы собираетесь, они переопределяют текст состояния.) –

+0

Почему пустые голоса? Что-то неясно? Нет исследований? Не нужно воспринимать это эмоционально. @musefan: они будут направлены на URL-адреса отслеживания, но сама ссылка должна выглядеть так, как будто она идет прямо к целевому URL-адресу. – test

ответ

0

Я использовал «ContextMenu», и это помогло мне изменить все URL на щелчок правой мышь.

$('#help').on('click contextmenu', "a", function(event) { 
    $(this).attr('href','my_new_url'); 
    $(this).attr('target', '_blank'); 
}); 

Он также заботится об открытии в новом окне, скопируйте ссылку и т.д.

Смежные вопросы