我想在我的 Blazor 页面中使用SCEditor 。
例如,我创建了一个新的 Blazor WASM 项目,并执行了以下步骤:
根据文档,我将此代码和引用添加到
index.html
:- https://cdn.jsdelivr.net/npm/sceditor@3/minified/themes/default.min.css
- https://cdn.jsdelivr.net/npm/sceditor@3/minified/sceditor.min.js
- https://cdn.jsdelivr.net/npm/sceditor@3/minified/formats/bbcode.min.js
window.InitEditor = () => { var textarea = document.getElementById('myTextArea'); sceditor.create(textarea, { format: 'bbcode', style: 'https://cdn.jsdelivr.net/npm/sceditor@3/minified/themes/content/default.min.css' }); };
textarea
在counter
页面中添加:<textarea id="myTextArea" style="width:100%; height:200px;"></textarea>
将以下代码添加到页面的代码部分
counter
:protected override Task OnAfterRenderAsync(bool firstRender) { JsRuntime.InvokeVoidAsync("InitEditor"); return base.OnAfterRenderAsync(firstRender); }
现在我运行项目,我看到了这个编辑器:
然后我点击获取数据菜单,我看到了这个:
令人惊讶的是,编辑器已显示在获取数据页面中。如果我再次点击计数器页面,我会看到:
有 2 名编辑 OO。如果我点击这个菜单,那么编辑器正在增加......
我以这种方式更改了代码:
protected override Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
JsRuntime.InvokeVoidAsync("InitEditor");
return base.OnAfterRenderAsync(firstRender);
}
编辑器在counter
页面和fetch data
页面中显示一次。textarea
同样,我没有任何fetch data
页面。
我怎么解决这个问题?