如题,以前用传统的js方法很好控制,就是修改textarea元素的scrollTop属性即可,但在razor文件里不用JavaScript应该怎样才能实现相同的效果(获取页面元素并控制滚动)?
没提供api获取dom,但是可以调用写好的js方法,实际也是生成js代码发送到客户端执行的,这个是b/s模式的限制。有帮助麻烦点个采纳【本回答右上角】,谢谢~~
[_Host.cshtml/index.html]
<script>
function accessDOMElement() {
var btn;
// access DOM here
btn = document.getElementById('btn');
btn.innerText = "Button Textchanged";
}
</script>
[index.razor]
@page "/"
@inject IJSRuntime jsRuntime
<h1>@Title</h1>
<button id="btn" @onclick="UpdateTitle">Update Title</button>
@code {
private string Title { get; set; } = "Hello, World!";
private async void UpdateTitle()
{
await jsRuntime.InvokeAsync<object>("accessDOMElement");
Title = "Hello, Blazor!";
}
}
代码来源:https://www.syncfusion.com/faq/blazor/javascript-interop/is-there-a-way-to-access-dom-in-blazor