如何在blazor anywhere中调用js?

如何在blazor anywhere中调用js?,blazor,blazor-server-side,Blazor,Blazor Server Side,我试图在blazor(服务器)中的button onclick事件上调用js,但出现了错误: 此时无法发出JavaScript互操作调用。这是因为组件正在进行静态渲染。启用预渲染时,只能在OnAfterRenderAsync生命周期方法期间执行JavaScript互操作调用 我使用的是服务器渲染模式 如果我使用客户端渲染模式,它会正常工作。当Blazor服务器应用程序预渲染时,某些操作(如调用JavaScript)是不可能的,因为尚未建立与浏览器的连接。组件在预渲染时可能需要进行不同的渲染。

我试图在blazor(服务器)中的button onclick事件上调用js,但出现了错误:

此时无法发出JavaScript互操作调用。这是因为组件正在进行静态渲染。启用预渲染时,只能在OnAfterRenderAsync生命周期方法期间执行JavaScript互操作调用

我使用的是服务器渲染模式



如果我使用客户端渲染模式,它会正常工作。

当Blazor服务器应用程序预渲染时,某些操作(如调用JavaScript)是不可能的,因为尚未建立与浏览器的连接。组件在预渲染时可能需要进行不同的渲染。有关更多信息,请参阅第节


参考资料:

我使用的是服务器版本,在下面的示例中,我发现了上述相同的错误

File .razor:
      <RadzenTabs SelectedIndex="0" Change=@(args => OnChangeRadzenTab(args))>

File.cs:
        async void OnChangeRadzenTab(int value)
        {
            switch (value)
            {
               case 0:
                   await jsRuntime.InvokeVoidAsync("eval", $@"document.getElementById(""NameOfField"").focus()");
                   break;
               
File.razor:
OnChangeRadzenTab(args))>
File.cs:
异步void OnChangeRadzenTab(int值)
{
开关(值)
{
案例0:
等待jsRuntime.InvokeVoidAsync(“eval”,$@”document.getElementById(“NameOfField”).focus();
打破
但是在接下来的一个例子中,代码运行。为什么会有这些行为上的差异

File .razor:
        <RadzenMask Mask="**/**/****" Pattern="[^0-9]" Name="EndDate" Id="EndDate"
                    @bind-Value=@EndDate  @onfocusout=@(args => OnFocusOutEndDate(args)) /> 

File.cs:
        async void OnFocusOutEndDate(FocusEventArgs? value)
        {
            if (!LibB.CheckDate(EndDate))
            {
                await jsRuntime.InvokeVoidAsync("eval", $@"document.getElementById(""EndDate"").focus()");
                Error = true;
            }
        }   
File.razor:
OnFocusOutEndDate(args))/>
File.cs:
异步void OnFocusOutEndDate(FocusEventArgs?值)
{
如果(!LibB.CheckDate(EndDate))
{
等待jsRuntime.InvokeVoidAsync(“eval”,$@”document.getElementById(“EndDate”).focus();
错误=真;
}
}   

这与“渲染模式”值无关吗?