我知道我可以通过以下方式捕获点击事件:左键、右键和中键:
contextmenu
e.which
但是,我需要捕获“在新标签页中打开链接”的事件点击: 当您右键单击链接时,它会显示一个菜单,其中包含“在新标签页中打开链接”选项。
我如何捕获该事件?
PD: 不是右键事件,是点击“在新标签页打开链接”时的事件。
主要原因是,我试图隐藏附属网站的链接,但是当我右键单击并选择“在新选项卡中打开链接”选项时,不起作用,它没有显示真正隐藏的 url .
我在谷歌搜索中找到了脚本,但我根据需要编辑了脚本,但我遇到了上面提到的问题。
代码:
(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));
任何想法
最佳答案
请看下面...这就是您可以处理的方法。
<script type='text/javascript'>
jQuery(function($){
$('a').mousedown(function(event) {
switch (event.which) {
case 1:
//alert('Left mouse button pressed');
$(this).attr('target','_self');
break;
case 2:
//alert('Middle mouse button pressed');
$(this).attr('target','_blank');
break;
case 3:
//alert('Right mouse button pressed');
$(this).attr('target','_blank');
break;
default:
//alert('You have a strange mouse');
$(this).attr('target','_self"');
}
});
});
关于javascript - 捕获 "Open Link in New Tab"javascript 或 jquery 的事件点击 - Cloaking URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50702119/