禁用右键单击不起作用

时间:2017-03-18 04:50:49

标签: javascript jquery

<head>
<script>
$("body").on("contextmenu", "img", function(e) {
  return false;
}); 
</script>
</head>

<?php
session_start();
include 'connection.php';
include 'sessions.php';

$image_id = $_GET['id'];

$query = "SELECT * FROM medical_data WHERE md_id = '$image_id'";
$result = mysqli_query($con,$query) or die(mysqli_error($con));

if (mysqli_num_rows($result) > 0) 
{
while($row = mysqli_fetch_assoc($result)) 
{                           
$image = $row['md_pt_image'];
}                                  
}   

echo '<img src="data:image/jpeg;base64,'.base64_encode($image).'" height="auto" width="auto"/><br>';        

?>

这是我的代码,我想从数据库中显示图像并禁用右键单击它。 但JS无法正常工作,我仍然可以右键单击图像。 是因为我使用 &lt; echo 中的img&gt; ?或者我的JS错了!?

3 个答案:

答案 0 :(得分:3)

正如@haxxxton已经说过你需要将代码包装在document.ready中以使其正常工作。

<script type="text/javascript">
$(document).ready(function(){
$('img').on('contextmenu', function(e) {
return false;
});
});
</script>

使用纯JavaScript进行此操作的另一种方法是

<script type='text/javascript'>

function nocontext(e) {
  var clickedTag = (e==null) ? event.srcElement.tagName : e.target.tagName;
   if (clickedTag == "IMG") {
   return false;
   }
}
document.oncontextmenu = nocontext;

</script>

答案 1 :(得分:1)

Neel有一个非常好的答案,事实上我赞成了它。

考虑这是第二个实现:您可以使用preventDefault();

function nocontext(e) {
  var clickedTag = (e==null) ? event.srcElement.tagName : e.target.tagName;
  if (clickedTag == "IMG") {
     e.preventDefault();
  }
}

document.oncontextmenu = nocontext;

答案 2 :(得分:0)

Just Like Like:

<div id="disabled"></div>

$(document).ready(function() {
    $("#disabled").on("contextmenu",function(e){
       return false;
    }); 
}); 

工作JS FIDDLE LINK