Estoy tratando de ocultar links ( cloaking links ) the sitios afiliados.
El problema que tengo es que puedo capturar los click: izquierdo, derecho y medio, pero cuando hago click derecho y me aparece el menu y escojo "open in new tab" no puedo capturar ese evento pars poder mostrar la url con los parametros UTM
Codigo:
Código Javascript:
Ver original
(function ($) { ninja_href(".ninja-href"); function ninja_href_call(e,which) { var ninja_url = e.target.getAttribute('data-ninja-url'); var ninja_target = e.target.getAttribute('data-ninja-target'); if(ninja_target == null || typeof ninja_target == undefined || which === 3) { ninja_target = "_self"; } if(which === 2) { ninja_target = "_blank"; } var win = window.open(ninja_url, ninja_target); if (win && ninja_target == "_blank") { win.focus(); } } function ninja_href(element) { if(element == null || typeof element == undefined){ element = ".ninja-href"; } if (document.addEventListener) { document.addEventListener('click', function(e) { if(e.target && e.target.matches(element)) { if (e.which === 1 || e.which === 2) { e.preventDefault(); ninja_href_call(e,e.which); } } }, false); document.addEventListener('mousedown', function(e) { if(e.target && e.target.matches(element)) { if (e.which === 2) { e.preventDefault(); ninja_href_call(e,e.which); } } }, false); document.addEventListener('contextmenu', function(e) { console.warn(e); if(e.target && e.target.matches(element)) { } }, false); } else { document.attachEvent('click', function() { if(e.target && e.target.matches(element)) { if (e.which === 1 || e.which === 2) { e.preventDefault(); ninja_href_call(e,e.which); } } }); } } }(window.jQuery));
Alguna idea
Graciss