ブレーザーアプリケーションでジャバスクリプトを自動挿入

asp.net-core blazor c#

質問

私はBlazor拡張ライブラリを開発しています。

このライブラリの1つはjavascript alert()メソッドの再利用です。私はこれを行う方法を知っています、これは.cshtmlページにこれを追加することを含みます:

<script>
  Blazor.registerFunction('Alert', (message) => {
      alert(message);
  });
</script>

これは私のコードでは:

public void Alert(string message)
{
     RegisteredFunction.Invoke<object>("Alert", message);
}

あなたが私のパッケージを(あるいは多分いつも)使っているなら、javascriptの部分を何とかhtmlに自動注入したいと思います。これが可能かどうかはまだ分かりませんが

これに関するアイデア?

受け入れられた回答

編集

Blazor 0.2以降、これを行うためのサポートされた方法があります。例として、blazorlibテンプレートを見てください:

dotnet new -i Microsoft.AspNetCore.Blazor.Templates

dotnet new blazorlib

0.1答え

私は私のjavascriptを含む自分のブレーザーコンポーネントを作成することになった。

public class BlazorExtensionScripts : Microsoft.AspNetCore.Blazor.Components.BlazorComponent
{

    protected override void BuildRenderTree(Microsoft.AspNetCore.Blazor.RenderTree.RenderTreeBuilder builder)
    {
        builder.OpenElement(0, "script");
        builder.AddContent(1, "Blazor.registerFunction('Alert', (message) => { alert(message); });");
        builder.CloseElement();
    }
}

そして、これを私のapp.cshtmlに追加する:

@addTagHelper *, BlazorExtensions

<Router AppAssembly=typeof(Program).Assembly />

<BlazorExtensionScripts></BlazorExtensionScripts>



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ