我有一个包含多个链接的HTML页面。有没有能力抓住打开链接的事件?用户只需单击链接,或者可以通过右键单击在新窗口或选项卡上打开它。
链接是指外部资源,我无法控制其内容。
答案 0 :(得分:3)
我可以想到一些客户端选项,其中没有一个是理想选择:
您可以将链接的href
替换为运行您想要的任何代码的javascript:
网址,然后导航到正确的网址(location.href = "http://example.com"
)。这是令人讨厌的,因为如果用户右键单击它会中断 - >新标签页或已禁用JavaScript。
您可以为<a>
的点击事件添加事件监听器。但是这不会在右键单击时触发 - &gt;打开,或用户跳过并按Enter键。
您可以在文档本身上使用onunload
事件处理程序,但这不会告诉您用户的去向,并且如果用户打开新选项卡则无法工作。
如果您只想跟踪用户导航到的位置,那么服务器端解决方案是唯一万无一失的方法。您必须将用户发送到您自己的服务器,然后服务器会发送HTTP 302代码以将浏览器重定向到正确的URL。当然,这需要比您想要的更多的基础设施。
答案 1 :(得分:0)
是的,你可以使用javascript做类似的事情......
$('a').click(function(){
event.preventDefault();
$(this).alert("do something");
});
答案 2 :(得分:0)
尝试
var links = document.getElementsByTagName('a');
for(var i = 0; i< links.length; i++) {
links[i].onmousedown = function(e) {
console.log(this.href, this)
if ((e.which && e.which == 3) || (e.button && e.button == 2)) { // not sure about IE
alert('right click');
}
}
}