In my blazor server side app I want to listen to the mouseclick event on a razor page, and when mouseclick occurs (except on a button), I want to run a method.I have tried following with JavaScript but didn't worked for me:
in my _host.cshtml added following script:
window.addDocumentClickListener = () => { document.addEventListener('click', function (e) { if (e.target.tagName.toLowerCase() !== 'button') { DotNet.invokeMethodAsync('MyProjectName', 'HandleMouseClick'); } });};in my Razor page:
@inject IJSRuntime JS ... ...@code { protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender ) { await JS.InvokeVoidAsync("addDocumentClickListener"); } } [JSInvokable] public void HandleMouseClick() { Action_On_Mouseclick(); }}