在Blazor Server中,可以通过在客户端JavaScript代码中注册window.onbeforeunload事件来检测用户关闭浏览器的操作。具体步骤如下:
在项目的wwwroot目录下创建一个名为“js”的文件夹,然后在该文件夹下创建一个名为“custom.js”的文件。
在“custom.js”文件中编写以下JavaScript代码:
window.addEventListener("beforeunload", function (event) {
var message = "您确定要离开吗?";
if (typeof event == "undefined") {
event = window.event;
}
if (event) {
event.returnValue = message;
}
return message;
});
@inject IJSRuntime JSRuntime
@code {
protected override async Task OnInitializedAsync()
{
await JSRuntime.InvokeVoidAsync("eval", "window.onbeforeunload = function () { DotNet.invokeMethodAsync(\"Your.AssemblyName\", \"OnBeforeUnload\"); }");
}
[JSInvokable]
public async Task OnBeforeUnload()
{
// 程序要执行的操作
}
}
在上述代码中,“Your.AssemblyName”应替换为包含可调用方法的程序集名称。
这样,当用户关闭浏览器时,将引发与"OnBeforeUnload"方法相关联的事件,从而执行程序中设定的操作。