【问题标题】:Blazor: How to invoke JavaScript after HTML is renderedBlazor:如何在呈现 HTML 后调用 JavaScript
【发布时间】:2020-06-19 07:29:28
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:
  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)

注意:如果您启用了服务器端预渲染,请在OnAfterRenderAsyncfirstRender == true 一起执行之前,不要第一次使用JSRuntime。

另请注意:调整浏览器大小时组件不会重新渲染。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-10
    • 2016-09-07
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多