如何拒绝/阻止用户在浏览器的新标签页中打开我网站中的链接?

时间:2012-04-10 14:34:54

标签: php javascript browser

有一个javascript生成的链接,我需要确保用户无法通过右键单击并选择在新标签中打开,或者通过使该操作完全不执行任何操作来打开它。

有什么想法吗?

编辑: 我没有提出问题,询问是否正确,但要知道是否可能。如果你可以帮我一个合适的答案,请不要给我建议我不需要解决的问题。抱歉态度。

4 个答案:

答案 0 :(得分:3)

  

有一个javascript生成的链接,我需要确保用户无法通过右键单击并选择在新标签中打开,或者通过使该操作完全不执行任何操作来打开它。

无法完成。说实话,我也看不出任何人想要这个的正当理由。在选项卡中打开页面的结果与打开页面没有什么不同。无论如何,无法判断您的网站是在一个标签页中打开,还是在不同的标签页中打开。

答案 1 :(得分:2)

您最好的解决方案可能是避免使用链接。相反,使用<span><div>(或类似)并绑定重定向页面的单击事件处理程序。

document.getElementById("mylinkdiv").addEventListener("click", function() {
    window.location.href = "foo.html"
}

一般来说这很糟糕,因为您不希望网站功能依赖于启用的JavaScript,但是您已经说过用户需要JavaScript首先看到链接。

答案 2 :(得分:1)

这不可能。简单。不可能

答案 3 :(得分:-2)

您可以通过禁用右键单击页面来执行此操作。由于“在新标签页中打开链接”是浏览器特定功能,因此您无法在右键单击菜单中有选择地禁用该功能。 将此脚本放入您的网页以禁用右键单击。

<script language=JavaScript>
     var message = "You cannot right Click on this page"; 
     function rtclickcheck(keyp){ if (navigator.appName == "Netscape" && keyp.which == 3)
     {
       alert(message); 
       return false;
     } 
     if (navigator.appVersion.indexOf("MSIE") != -1 && event.button == 2) 
     {
       alert(message);
       return false;
     }
 } 
   document.onmousedown = rtclickcheck;
</script>