Javascript 启用";“在新选项卡/窗口中打开”;在右键单击中

Javascript 启用";“在新选项卡/窗口中打开”;在右键单击中,javascript,jquery,html,Javascript,Jquery,Html,我的链接是javascript函数,显示加载程序,然后导航到目标链接: <script> function go(url) { document.body.innerHTML = "some loader html"; window.location = url; } </script> <a href="javascript:go('test.php');">Click here</a> 函数go(url){ document.b

我的链接是javascript函数,显示加载程序,然后导航到目标链接:

<script>
function go(url) {
  document.body.innerHTML = "some loader html";
  window.location = url;
}
</script>
<a href="javascript:go('test.php');">Click here</a>  

函数go(url){
document.body.innerHTML=“一些加载程序html”;
window.location=url;
}
但是,当用户右键单击该链接并希望在新选项卡中导航到
test.php
时,该链接将不起作用

我希望当用户希望在新选项卡/窗口中打开链接时,该链接也能正常工作。有没有一种javascript/jquery方法可以实现这一点

首先,感谢你,“我的链接是javascript函数,它显示一个加载程序,然后导航到目标链接”听起来像是一个糟糕的设计决策

要回答你的问题。。。
window.open('test.php','u blank')

第二个参数是目标窗口的名称 看

获得右键单击“在新窗口中打开”的唯一方法是使用如下标记

我强烈建议您不要使用javascript打开链接,这通常是不好的做法,您很可能会遇到弹出窗口阻止程序问题。 我会亲自做这件事

也许您想要展示的这个“加载器”应该是模仿AJAX加载方法的,在这种方法中,您加载新的HTML并将其插入页面,而不会导致实际的页面重新加载

你可能对此感兴趣
您的链接应该是链接,而不是JavaScript函数。它们的主要目的是导航。您可以稍后在单击处理程序中添加额外的行为:

document.body.addEventListener('click',evt=>{
const link=evt.target.closest('a.use-loader');
如果(!link)返回;
evt.preventDefault();
document.body.innerHTML='LOADING';
window.location.href=link.href;
});



我认为在这种情况下,它必须在test.php文件中完成。