contextmenu - 如何在不显示典型浏览器上下文菜单的情况下处理 Blazor(客户端/WASM)中的右键单击事件?
问题描述
HandleClick 似乎只处理左键单击,但看起来我可以使用onmouseup
和MouseEventArgs.Button
属性来检测右键单击。
问题是出现了典型的浏览器提供的上下文菜单。有没有办法防止这种情况?我在 Blazor 中没有看到类似 preventDefault() 的东西。
更新:显然我们可以做@onmouseup:preventDefault
,但上下文菜单仍然显示
解决方案
好的,我想通了:
<div oncontextmenu="return false;" @onclick="HandleClick" @onmouseup="HandleMouseUp" >
this is a div
</div>
@code {
void HandleClick(MouseEventArgs args)
{
Console.WriteLine("This is a left click");
}
void HandleMouseUp(MouseEventArgs args)
{
if (args.Button == 2)
Console.WriteLine("This is a right click");
}
}
关键是oncontextmenu="return false;"
div 本身的 javascript。
推荐阅读
- pimcore-v5 - 如何在 Pimcore v5 中设置 2 个相同类型的数据对象之间的父子关系?
- reactjs - 如何在本机反应中订购数组?
- docker - 在 Helm 图表 values.yaml 中拉取 docker hub 图像
- windows - 从特定的远程机器测试网站(www.testwebsite.com)
- javascript - 基于倾向性的流体响应图像网格
- cluster-computing - HTCondor 拒绝使用退出代码 4/NOPERMISSION 启动它的守护进程
- python-3.x - 如果另一个并发进程有搜索结果,则通知进程停止
- symfony - Docker symfony 4 和 mysql
- javascript - 如何将 Javascript 数组获取到 MVC 控制器
- r - R:如何操作数据(具有 NA 值的 Dataframe 和具有多个迭代结果的插补矩阵)?