打开禁用右键单击选项的新窗口/选项卡(JavaScript)

时间:2014-01-10 11:42:44

标签: jquery html jquery-ui javascript

我需要在超链接上打开一个新窗口/选项卡,在新打开的窗口中禁用右键单击。如何在JavaScript或JQuery中实现这一点?可以将控件传递给OnClick()事件上的JavaScript并调用window.open(),但需要限制右键单击新窗口..

1 个答案:

答案 0 :(得分:0)

如果您要打开的新页面是您的,那么您可以在该页面上放置一些JavaScript以防止右键单击功能:

<script type="text/javascript"> 

var message="Sorry, right-click has been disabled"; 

function clickIE() 
{
    if (document.all) {(message);return false;}
}

function clickNS(e) 
{
    if (document.layers||(document.getElementById&&!document.all)) 
    { 
       if (e.which==2||e.which==3) {(message);return false;}}
    } 
if (document.layers) 
{
    document.captureEvents(Event.MOUSEDOWN);
    document.onmousedown=clickNS;
} 
else
{
    document.onmouseup=clickNS;
    document.oncontextmenu=clickIE;
} 
document.oncontextmenu = new Function("return false");

</script> 

像这样:How do I disable right click on my web page?

如果页面不是您的,那么通常您无法阻止该页面上的右键单击功能。即使您在iFrame中显示其他页面,仍然可以 来阻止右键点击,如您所见:

因此,只有新网页位于您的域

时才能

这带来了另一个'争议'的想法,即在发出请求时将用户尝试打开的URL的源文件复制到您自己的域,然后向该源添加一些JavaScript然后显示(您的URL) )页面而不是原始页面。但是,这可能与copyright laws冲突,并且不必要地使问题复杂化。

请注意,非常气馁禁用右键单击,因为它只会激怒您的用户并且不会阻止他们复制任何内容(因为总是有这些'禁用脚本'的方法例如,通过禁用该页面上的JavaScript执行或仅查看源代码。)

因此,您不应该为尝试禁用鼠标右键而烦恼。

如果您不希望您的用户能够从您的网站复制信息,请不要将其放在那里。

这是因为互联网的构建方式。 Read more here

简单地说:如果用户知道您的网站域名,他们就知道您的域名地址,因此他们可以打开/检索链接到此地址的所有(打开)文件(实际上,由于一些聪明的技巧,这并非总是如此多年来一直在发展。)

互联网只是一个庞大的地址集合,其中每个地址都是您可以下载的数据的门户。因此,尝试通过客户端JavaScript保护文件是非常无知的,因为它忽略了所有文件都可以下载/查看的事实。

IMO,它只会激怒/吓唬一些不知道JavaScript是什么的用户。

我希望这可以回答你的问题,但也会让你重新考虑你的初衷。祝你好运!