如果您打开的新页面是您的,那么您可以在该页面上放置一些 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 是什么的用户。
我希望这能回答你的问题,但也让你重新考虑你的初衷。祝你好运!