Blazor 服务器端调用 JS
Blazor 服务器端通过 JavaScript interop 机制可以调用客户端 js 函数,以便在 C# 代码中直接访问浏览器的 DOM 对象。下面提供了一个示例:
1.创建一个 js 文件,并添加一个函数
function showAlert(msg) {
alert(msg);
}
2.在 C# 代码中声明它与 js 之间的互操作
@inject IJSRuntime JSRuntime;
@code {
async Task CallJavaScriptFunction()
{
await JSRuntime.InvokeVoidAsync("showAlert", "Hello world!");
}
}
这将调用名为 showAlert
的 js 函数,并传递 "Hello world!"
作为参数。在浏览器中将弹出一个警告框显示“Hello world!”。
需要注意的是,Blazor 服务器端通过初始 HTTP 请求渲染页面并呈现 UI,而后端代码可能会在单独的线程上运行。因此,所有的客户端 js 调用都必须通过 SignalR 消息传递机制进行。pSignalR 可以识别操作并将其发送到客户端,以便 js 将函数调用委托给 DOM。