我在一个页面上有一组链接。当用户点击链接时,它会触发异步请求,并使用响应html更新页面上的内容区域。
这种方法很好,除非用户点击带有“中间按钮”(或鼠标滚轮,无论它叫什么!)的链接。然后打开一个新选项卡,返回响应并将其呈现给该选项卡。
我有什么方法可以防止这种情况发生吗?
答案 0 :(得分:2)
使用javascript捕获链接并覆盖默认链接行为。
像这样:$('a.ajax').click(function(e){
e.preventDefault();
// do ajax stuff, and add an onfinish function that does
// something like document.location.href = this.attr('href');
});
您不必执行document.location.href,因为我刚刚注意到内容区域已更新。只需使用e.preventDefault();
捕获默认行为//编辑 preventDefault不会停止鼠标中键...您是否考虑过不使用标签?我知道它应该是可访问的,所以可能是一个包含链接的span,所以你可以在span上添加onclick事件并用css隐藏链接?
答案 1 :(得分:0)
不幸的是,不会出于安全原因Javascript无法访问这种控件,因为它会被广泛滥用。