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...");
}
それも達成可能ですか?
DOM操作は現在Webアセンブリ(https://github.com/WebAssembly/proposals/issues/16、https://github.com/WebAssembly/design/blob/master/Web.md)でサポートされていないため、勝ちましたすぐにmonowasmでサポートされません。 これは、Blazorの現在の状態(カスタムコンポーネントとJS相互運用)を使用してのみ行うことができます。
この問題は再開されるべきだと思います。 Razorコンポーネントは、内部でJS相互運用機能を使用して実行された場合でも、この機能を備えている必要があります。 ElementRefは、ほとんどの基本的なJS関数をサポートするように拡張する必要があります。
直接DOMアクセスがBlazorを試す理由になります。
これは、Blazorのブレークスルーには必須です。
最も参考になるコメント
この問題は再開されるべきだと思います。 Razorコンポーネントは、内部でJS相互運用機能を使用して実行された場合でも、この機能を備えている必要があります。 ElementRefは、ほとんどの基本的なJS関数をサポートするように拡張する必要があります。