2017-03-18 106 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