如何在javascript中捕获新标签事件中的开放链接?

我能够捕获右键单击事件,但我想知道的是如何捕获右键单击后发生的“新选项卡中的打开链接”

我刚遇到同样的问题。 这是我提出的工作。 当我在我感兴趣的链接上打开时,我会听到上下文菜单,并且我更改了href值

 $(".my-links").contextmenu(function(event){ // your logic here // for me it was to add the portocal + "://" + hostname + "/#" + value of the original link var $link = $(this); var href = $link.attr('href'); // Check if I have already done this if(href.includes('/#')) return true; // return if it doesn't need editing var url = window.location.href; url = url.split("/"); url = url[0]+'//'+url[2]; $link.attr('href', url + '/#' + href); }); 

现在,您可以选择执行某些操作以从此操作中恢复。 这完全取决于您的情况以及您要做的事情。 对我来说,我需要将href恢复到正常点击的原始值,因为我使用ajax加载页面,我只需要“/#”之后的部分(这是加载function需要的,我无法控制改变这个function)这就是我所做的。

 $(".my-links").click(function(event){ // your logic goes here // for me it was to remove portocal + "://" + hostname + "/#" (if they exist) event.preventDefault(); var $link = $(this); var href = $link.attr('href'); if(!href.includes("/#")) return ajaxLoad(href); // the function used to load the page with ajax var url = href.split("/#"); ajaxLoad(url[url.length-1]); // the function used to load the page with ajax }); 

这些线应该适合你。

  1. 听取contextmenu事件并做你的逻辑。

  2. 如果您需要恢复更改,请找出最合适的事件,以便在发生更改时恢复并执行恢复过程。