是否可以禁用右键点击iframe? 我知道iframe中的文件可能位于同一个域中,但是我想知道如果框架中的文件来自外部网站是否可以完成?
感谢
答案 0 :(得分:10)
您无法真正禁用上下文菜单。 You can only construct fragile barricades to keep people from invoking it。但事实上,这是一个外部iframe只会使问题复杂化。不,您无法阻止用户激活iframe上下文菜单。遗憾。
答案 1 :(得分:4)
适用于IE以禁用对iframe的右键单击,但问题是它不适用于外部网站,,, iframed文件必须在同一个域...看看它
<html>
<head>
<title>Disable Context Menu</title>
<script type="text/jscript">
function disableContextMenu()
{
window.frames["fraDisabled"].document.oncontextmenu = function(){alert("No way!"); return false;};
// Or use this
// document.getElementById("fraDisabled").contentWindow.document.oncontextmenu = function(){alert("No way!"); return false;};;
}
</script>
</head>
<body bgcolor="#FFFFFF" onload="disableContextMenu();" oncontextmenu="return false">
<iframe id="fraDisabled" width="528" height="473" src="local_file.html" onload="disableContextMenu();" onMyLoad="disableContextMenu();"></iframe>
</body>
</html>
答案 2 :(得分:0)
不,如果它在外部域上则不可能。鼠标单击或任何其他事件从它触发的第一个最顶层元素开始,然后以元素链的形式返回(除非传播停止)。如果您试图在包含文档中将其停止,则它已经触发了子文档的相关元素。
答案 3 :(得分:-1)
如果您创建div
,则有可能在此Div
中添加z-index
。
配置width
,height
后,添加filter:alpha(opacity=50); opacity:0.5;
,然后在您的网站上添加一个conde,阻止右键点击...
答案 4 :(得分:-1)
是的,可以执行以下所有操作:禁用下载,打印,保存,打印屏幕以及键盘上的任何按钮,以便为PDF提供安全保障。
关注我的项目......
1。安装服务器运行php文件(否则使用usb便携式服务器) 2.创建&#34; Pdf_Files&#34;项目中的文件夹并将PDF文件粘贴到其中。 3.download pdf.js项目 4.写下以下代码......
<强> blocked.js 强>
$(function() //right click disabled
{
$(this).bind('contextmenu',function()
{
alert("Function disabled");
return false;
})
});
function copyToClipboard() {
var aux = document.createElement("input");
aux.setAttribute("value", "Function Disabled.....");
document.body.appendChild(aux);
aux.select();
document.execCommand("copy");
document.body.removeChild(aux);
alert("Print screen disabled.");
}
function blockPrint() {
alert("Print is not allowed...");
}
function PreSaveAction() {
alert("saving..");
}
$(function()
{
$(this).keyup(function(e){
if(e.keyCode == 44 || e.keyCode == 137 ||e.KeyCode == 93 )
//100 Save 137 SHift F10 93 RightClick 44 PrintScreen
{
copyToClipboard();
return false;
}
})
});
//disable Ctrl + keys
document.onkeydown = function (e) {
e = e || window.event;//Get event
if (e.ctrlKey) {
var c = e.which || e.keyCode;//Get key code
switch (c) {
case 83://Block Ctrl+S
case 80 : //block Ctrl+P
case 17 : //block Ctrl
case 16 : //block Shift
e.preventDefault();
e.stopPropagation();
alert("key disabled");
break;
}
}
};
$(window).focus(function() {
$("body").show();
}).blur(function() {
$("body").show();
});
function setClipBoardData(){ //override system function - make clipBoard null always
setInterval("window.clipboardData.setData('text','')",20);
}
function blockError(){
window.location.reload(true);
return true;
}
<强> MyIframe.php 强>
<html>
<head>
<title> </title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="blocked.js"></script>
<link rel="stylesheet" type="text/css" href="myStyle.css">
</head>
<body onbeforeprint="copyToClipboard()" >
<?php
$file = './Pdf_Files/';
if( isset($_REQUEST["path"] ) )
$file .= $_REQUEST["path"];
echo ' <iframe src="pdfjs/web/viewer.html?file=../../'. $file .'#toolbar=0&navpanes=0" /> ';
?>
</body>
</html>
<强> myStyle.css 强>
@media print { * { display: none; } } /* make print blank */
iframe {
height: 100%;
width:100%;
padding:0;
overflow-x: scroll;
border:none;
overflow-y: scroll;
}
/* disable selection highlighting, from https://stackoverflow.com/a/4407335 */
* {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
input[type="submit"] { /* make submit btn as link */
background:none!important;
color:inherit;
border:none;
padding:0!important;
font: inherit;
border-bottom:1px solid #444;
cursor: pointer;
}
<强> test.php的 强>
<html>
<head>
<title> </title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="blocked.js"></script>
<link rel="stylesheet" type="text/css" href="myStyle.css">
<body>
<form method="post" action="MyIframe.php" >
<table align="center" width="800px" cellspacing="20px" >
<?php
$path = './Pdf_Files/';
$count = 0;
if( $handler = opendir( $path ) )
{
while( false !== ($file = readdir($handler)))
{
if( strpos($file, '.pdf' ) !== false )
{
if( $count++ % 2 == 0 ) //make cloumn count 2
echo '<tr>';
echo '<td> * <input type="submit" name="path" value="'. $file .'" /> </td> ';
}
}
closedir($handler);
}
?>
</table>
</form>
</body>
</html>
使用这个完整的项目,您可以为PDF文件提供任何类型的安全性,即使您可以阻止任何键盘进行保护。
执行
的步骤