我在一个页面上有一组链接。当用户单击链接时,它会触发异步请求,并且页面上的内容区域会使用响应 html 进行更新。
这很好用,除非用户使用“中间按钮”(或鼠标滚轮,不管它叫什么!)单击链接。然后打开一个新选项卡,响应被返回并呈现到该选项卡。
我有什么办法可以防止这种情况发生吗?
我在一个页面上有一组链接。当用户单击链接时,它会触发异步请求,并且页面上的内容区域会使用响应 html 进行更新。
这很好用,除非用户使用“中间按钮”(或鼠标滚轮,不管它叫什么!)单击链接。然后打开一个新选项卡,响应被返回并呈现到该选项卡。
我有什么办法可以防止这种情况发生吗?
使用 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 不会停止鼠标中键...你考虑过不使用标签吗?我知道它应该是可访问的,所以可能是一个包含链接的跨度,所以您可以在跨度上添加 onclick 事件并使用 css 隐藏链接?
不幸的是,不,出于安全原因,Javascript 无法访问这种控制,因为它很容易被滥用。