javascript - 禁用右键单击和弹出窗口
问题描述
我想禁用右键单击图像。当用户右键单击图像时,我希望它显示一条消息(请运行下面的代码片段)。
在下面的代码中,我有两个图像。如果我右键单击图像顶部,它会弹出一个窗口并显示“不允许右键单击”。但是,如果我向下滚动并右键单击图像,则会在网站底部显示此弹出窗口。
你能告诉我如何让这个弹出窗口在我右键单击的地方打开吗?(例如,如果我右键单击第二张图像,这个弹出窗口甚至不会出现)。
<script>
if (document.getElementById('test1').addEventListener) {
document.getElementById('test1').addEventListener('contextmenu', function(e) {
$("#rmenu").toggleClass("hide");
$("#rmenu").css({
position: "fixed",
top: e.pageY,
left: e.pageX
});
e.preventDefault();
}, false);
}
$(document).bind("click", function(event) {
document.getElementById("rmenu").className = "hide";
});
</script>
解决方案
表示position: absolute
而不是position: fixed
。这里:
...
$("#rmenu").css({
position: "absolute",
top: e.pageY,
left: e.pageX
});
...
推荐阅读
- java - SwipeRefreshLayout 不适用于空列表
- postgresql - 将数据目录从根硬盘移动到另一个硬盘后如何修复postgresql的连接?
- python - matplotlib 中的某一行未可视化
- javascript - 如何使用网络音频 api 获取原始 pcm 音频?
- swift - 通过 Alamofire 集成salesforce api?
- php - 遇到未捕获的异常类型:ImagickException 消息:无法读取 Codeigniter 中的文件
- c - 您是否需要在 C 枚举的最后一个成员之后添加额外的“,”?
- python - 如何将数据框列更改为字符串
- ios - Alamofire.framework:2个iOS应用程序中的未知错误-1 = ffffffffffffffff
- sqlite - 需要一般 Sqlite 外键解释