【发布时间】:2019-11-22 11:21:54
【问题描述】:
我需要在 Blazor 中的每个页面加载时调用 JS 函数。 JS 函数初始化和 html 元素,所以 OnInitializedAsync 对我不起作用,因为该元素直到没有被渲染。
每次页面加载时都会执行 OnAfterRenderAsync,但看起来 JS 函数本身在第一次渲染后没有正确执行。
目前我在“OnAfterRenderAsync”方法中这样做:
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await JSRuntime.InvokeVoidAsync("jsFunctions.initEditor", "#editor");
}
但是,这是在页面的第一次加载(渲染)时执行的。我需要在每次渲染时调用这个 JS 函数。
#editor是textarea的id
<InputTextArea id="editor" @bind-Value="Model" />
jsFunctions.initEditor是JS函数的名字
window.jsFunctions = {
initEditor: function (elementId) {
tinymce.init({
selector: elementId
});
}
}
【问题讨论】:
-
感谢@daniherrera,我目前正在做同样的事情。
-
你是在猜谜语吗?所以现在我们了解到 OnAfterRenderAsync 方法运行良好,但问题在于您的 JavaScript 函数,对吗?那么如何提供函数的代码以及相关的所有内容,例如,什么是“#editor”。
标签: c# .net-core blazor blazor-server-side