2017-03-18 72 views
1
<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不工作,我仍然可以右键单击图像。 是不是因为我使用< IMG>呼应?或者我的JS错了!?禁用右键单击不工作

+0

为什么要禁用右键单击?由于用户能够从控制台DOM得到它也 –

+1

您需要等到该文件已完成加载。再看一拉[这个答案]包装你的代码在'ready'功能(http://stackoverflow.com/a/5618300/648350) – haxxxton

+0

或者你可以用'document'替换'body'(它应该是'$ (文件).on')。文档参考在开始时已准备好(尽管当时没有加载内容)。但是'body'只能在内容加载后才可用。 – Hopeless

回答

2

正如@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> 
+0

非常感谢尼尔,jQuery的不工作,但没有问题JS为我工作。 :) – Wocugon

1

尼尔有一个完美的答案,其实我upvoted它。

认为这是第二个实现:您可以使用preventDefault()方法;

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

document.oncontextmenu = nocontext; 
+0

感谢我+推销员,但代码是不是为我工作:)所以生病去尼尔 – Wocugon

0

只是用像:

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

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

工作JS FIDDLE LINK