Auto injizieren Javascript in blazor Anwendung

asp.net-core blazor c#

Frage

Ich entwickle eine Blazor Erweiterungsbibliothek.

Eine Sache in dieser Bibliothek wäre die Wiederverwendung der javascript alert () Methode. Ich weiß, wie man das macht, dies beinhaltet das Hinzufügen in einer .cshtml-Seite:

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

und das in meinem Code:

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

Ich möchte, dass der Javascript-Teil irgendwie automatisch im HTML injiziert wird, wenn Sie mein Paket verwenden (oder vielleicht immer). Nicht sicher, ob dies (noch) möglich ist

Irgendwelche Ideen dazu?

Akzeptierte Antwort

Bearbeiten

Seit Blazor 0.2 gibt es einen mehr unterstützten Weg, dies zu tun. Sehen Sie sich die Blazorlib Vorlage für ein Beispiel an:

dotnet new -i Microsoft.AspNetCore.Blazor.Templates

dotnet new blazorlib

0.1 Antwort

Am Ende habe ich meine eigene blazor-Komponente erstellt, die mein Javascript enthält:

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();
    }
}

Und fügen Sie es meiner app.cshtml wie folgt hinzu:

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();
    }
}



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum