Aspnetcore: [Blazor] C#による直接DOM操作

作成日 2019年01月22日  ·  3コメント  ·  ソース: dotnet/aspnetcore

機能リクエストは問題に関連していますか? 記述してください。

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...");
}

それも達成可能ですか?

area-blazor

最も参考になるコメント

この問題は再開されるべきだと思います。 Razorコンポーネントは、内部でJS相互運用機能を使用して実行された場合でも、この機能を備えている必要があります。 ElementRefは、ほとんどの基本的なJS関数をサポートするように拡張する必要があります。

全てのコメント3件

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のブレークスルーには必須です。

このページは役に立ちましたか?
0 / 5 - 0 評価