是否可以在不调用 javascript 函数的情况下直接从 C# 代码操作 DOM?
我想过这样的基础
var elem = document.getElementById("123");
elem.AddOrUpdateStyle("background-color", "red");
elem.AddOrUpdateStyle("height", "150px");
elem.Remove("height");
var boxes = document.getElementsByClassName("box");
foreach (var box in boxes)
{
if (box.Classes.Contains("hidden"))
{
box.AddOrUpdateStyle("display", "none");
continue;
}
box.Value = "";
box.SetAttribute("placeholder", "Type here...");
}
它甚至可以实现吗?
web程序集目前不支持DOM操作si(https://github.com/WebAssembly/proposals/issues/16,https://github.com/WebAssembly/design/blob/master/Web.md),所以它赢了很快就不会得到 mono wasm 的支持。 您只能使用 Blazor 的当前状态来做到这一点:自定义组件和 JS 互操作。
我认为这个问题应该重新打开。 Razor 组件应该具有这种能力,即使它是在引擎盖下使用 JS 互操作完成的。 ElementRef 应该扩展以支持最基本的 JS 功能。
直接 DOM 访问将是我尝试 Blazor 的原因。
这对于突破 Blazor 来说是强制性的。
最有用的评论
我认为这个问题应该重新打开。 Razor 组件应该具有这种能力,即使它是在引擎盖下使用 JS 互操作完成的。 ElementRef 应该扩展以支持最基本的 JS 功能。