首页 > 解决方案 > 如何在不显示典型浏览器上下文菜单的情况下处理 Blazor(客户端/WASM)中的右键单击事件?

问题描述

HandleClick 似乎只处理左键单击,但看起来我可以使用onmouseupMouseEventArgs.Button属性来检测右键单击。
问题是出现了典型的浏览器提供的上下文菜单。有没有办法防止这种情况?我在 Blazor 中没有看到类似 preventDefault() 的东西。

更新:显然我们可以做@onmouseup:preventDefault,但上下文菜单仍然显示

标签: contextmenublazorright-clickblazor-client-side

解决方案


好的,我想通了:

<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。


推荐阅读