0

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

有任何想法吗?

编辑:我没有提出这个问题来询问这样做是否正确,而是要知道是否有可能。如果您可以帮助我提供适当的答案,请这样做,否则不要对我不需要解决的问题提出建议。对不起态度。

4

4 回答 4

3

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

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

于 2012-04-10T14:39:17.433 回答
2

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

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

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

于 2012-04-10T15:05:02.440 回答
1

这是做不到的。简单的。不可能

于 2012-04-10T14:42:00.580 回答
-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>
于 2012-04-10T14:42:48.993 回答