Clarity
Der ClarityBuilder (Fmh.Clarity(projektcode)) bindet das Analyse-Werkzeug
Microsoft Clarity
ein. Er rendert das Lade-Skript und stellt die gesetzten Tags als
clarityProperties bereit, die fmh-web-log beim Protokollieren mitgibt.
Der Aufruf gehört ins Layout.
Ohne Projektcode – abgeschaltet
Ohne Projektcode rendert der Builder nur den Kommentar <!-- disabled --> und lädt kein Skript. So bleibt die Einbindung im Layout stehen, auch wenn eine Umgebung ohne Clarity läuft.
@* Ohne Projektcode bleibt der Builder still: Er rendert nur einen Kommentar und lädt kein Skript.
Die Demo-Anwendung bindet Clarity deshalb ohne Code ein – ein echter Projektcode würde beim
Aufruf dieser Seite Daten an clarity.ms senden. *@
@Html.Fmh(Fmh.Clarity(string.Empty))
<p class="mb-0">Ausgabe an dieser Stelle ist nur <code><!-- disabled --></code> im Quelltext
der Seite. Mit Projektcode entstünde hier das Lade-Skript von Clarity samt der Variablen
<code>clarityProperties</code> mit den gesetzten Tags.</p>
Darstellung
Ausgabe an dieser Stelle ist nur <!-- disabled --> im Quelltext
der Seite. Mit Projektcode entstünde hier das Lade-Skript von Clarity samt der Variablen
clarityProperties mit den gesetzten Tags.
Der ClarityBuilder wird über Fmh.Clarity(projektcode) erzeugt und mit @Html.Fmh(...) gerendert — einmalig im Layout, damit die Aufzeichnung auf allen Seiten läuft:
@Html.Fmh(Fmh.Clarity(einstellungen.ClarityProjectCode)
.AddTag("mandant", benutzer.Mandant)
.AddTag("rolle", benutzer.Rolle))
Der Builder rendert das Lade-Skript von Microsoft Clarity und legt die gesetzten Tags als JavaScript-Variable clarityProperties ab.
Methoden
| Methode | Erklärung |
|---|---|
Fmh.Clarity(code) |
Erzeugt den Builder und setzt den Projektcode in einem Schritt. |
.ProjectCode(string) |
Setzt den Projektcode nachträglich. |
.AddTag(key, value) |
Ergänzt ein Tag. Mehrfach aufrufbar; derselbe Schlüssel zweimal wirft eine Ausnahme (Dictionary.Add). |
Abschalten
Ist der Projektcode leer oder nur Leerzeichen, rendert der Builder nur <!-- disabled --> — kein Skript, keine Verbindung zu clarity.ms. Damit kann der Aufruf im Layout stehen bleiben und die Aufzeichnung über die Konfiguration je Umgebung gesteuert werden (typisch: Produktion mit Code, Test ohne).
Tags und Protokollierung
Die Tags landen in clarityProperties und werden von fmh-web-log beim Protokollieren mitgegeben. Sie sind damit der Faden zwischen einer Clarity-Aufzeichnung und den eigenen Log-Einträgen. Personendaten gehören nicht hinein — Clarity ist ein Dienst ausserhalb der Anwendung.
Wenn das Skript blockiert wird
Der Builder registriert einen onerror-Handler: Blockiert ein Adblocker oder eine Firewall die Datei, meldet er das über window.log.error («Clarity blocked») bzw. ersatzweise über console.warn. Die Anwendung läuft dabei normal weiter.
Zu dieser Demo
Die Demo-Seite bindet den Builder bewusst ohne Projektcode ein — mit Code würde schon das Öffnen dieser Seite Daten an clarity.ms senden.