禁用右键单击不工作
问题描述:
<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错了!?禁用右键单击不工作
答
正如@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
答
尼尔有一个完美的答案,其实我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
答
只是用像:
<div id="disabled"></div>
$(document).ready(function() {
$("#disabled").on("contextmenu",function(e){
return false;
});
});
为什么要禁用右键单击?由于用户能够从控制台DOM得到它也 –
您需要等到该文件已完成加载。再看一拉[这个答案]包装你的代码在'ready'功能(http://*.com/a/5618300/648350) – haxxxton
或者你可以用'document'替换'body'(它应该是'$ (文件).on')。文档参考在开始时已准备好(尽管当时没有加载内容)。但是'body'只能在内容加载后才可用。 – Hopeless