。'在新标签页/窗口中打开时发生.click()事件
问题描述:
当我在<a>
标签上使用.click()
时,该事件仅在单击元素时起作用。否则,如果用户进行了右键单击>在新窗口中打开或在新选项卡中打开,则不会触发click()
事件。。'在新标签页/窗口中打开时发生.click()事件
因此,我的问题是......当用户在右键点击>在新标签页/窗口中打开时,如何触发click()
事件?
下面是HTML:
<a href="url">Click Me</a>
这里是JS:
$("a").click(function(){
alert('You clicked me!');
});
答
你可以试试这个代码,但请记住,改变UI是不是一个好IDEIA:
var addEvent = (document.addEventListener) ?
function(target,event,fn){
if(target) return target.addEventListener(event,fn,false);
}:
function(target,event,fn){
if(target) return target.attachEvent(('on' + event),fn);
},
allLinks = document.links || document.getElementsByTagName('a');
for(var i=0;i<allLinks.length;i++)
addEvent(allLinks[i],'mouseup',function(e){
var e = e || event;
if(e.which===3){
alert('Open in new tab/window');
e.preventDefault();
return false;
}
});
+0
这看起来像它认为所有的点击是一个“在新标签打开”事件。 – dlsso
ummm ..这只是一个右键单击,而不是'在新窗口/选项卡中打开。 –
我不认为这是可能的。我看到的唯一方法是捕获鼠标右键单击并手动触发'click'事件。 – VisioN
我不认为这是可能的。我认为其中一个原因是您不希望网站能够跟踪您访问的外部链接。 – gigadot