Blazor:如何在呈现HTML之后调用JavaScript

时间:2020-06-19 07:29:28

标签: blazor blazor-server-side blazor-webassembly

我有一个自定义组件,当它在浏览器中呈现时,我需要测量其大小(在JavaScript中)并回调Blazor。

在完成特定组件的渲染后,如何注册要调用的JavaScript?

1 个答案:

答案 0 :(得分:2)

  1. 在wwwroot中包含一个脚本。
  2. 在index.html或_Host.cshtml文件中引用它
  3. 在组件中添加@inject IJSRuntime JSRuntime
  4. 在要测量的元素@ref上添加<div @ref=MeasureMe>
  5. 在您的@code中声明一个字段ElementReference MeasureMe
  6. 重写OnAfterRenderAsync并执行var whatever = JSRuntime.InvokeAsync<YourResultType>("yourJSFunctionName", MeasureMe)

注意:如果启用了服务器端预渲染,请在使用OnAfterRenderAsync执行firstRender == true之后才第一次使用JSRuntime。

还请注意:调整浏览器大小时,组件不会重新呈现。

我在Blazor University上有关于JSInterop的部分。