我需要在超链接上打开一个新窗口/选项卡,在新打开的窗口中禁用右键单击。如何在JavaScript或JQuery中实现这一点?可以将控件传递给OnClick()
事件上的JavaScript并调用window.open()
,但需要限制右键单击新窗口..
答案 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是什么的用户。
我希望这可以回答你的问题,但也会让你重新考虑你的初衷。祝你好运!