1

我在一个页面上有一组链接。当用户单击链接时,它会触发异步请求,并且页面上的内容区域会使用响应 html 进行更新。

这很好用,除非用户使用“中间按钮”(或鼠标滚轮,不管它叫什么!)单击链接。然后打开一个新选项卡,响应被返回并呈现到该选项卡。

我有什么办法可以防止这种情况发生吗?

4

2 回答 2

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 不会停止鼠标中键...你考虑过不使用标签吗?我知道它应该是可访问的,所以可能是一个包含链接的跨度,所以您可以在跨度上添加 onclick 事件并使用 css 隐藏链接?

于 2010-08-26T08:40:41.870 回答
0

不幸的是,不,出于安全原因,Javascript 无法访问这种控制,因为它很容易被滥用。

于 2010-08-26T08:40:23.060 回答