it-swarm.com.de

Automatische Erkennung von Javascript-Fehlern und Warnung des Benutzers des Themas

Das mag einfach klingen, ist es aber nicht :)

Ich möchte und wahrscheinlich viele Theme-Entwickler (Themes, die Javascript/jquery verwenden), den Theme-Benutzer warnen, dass seine Site Javascript-Fehler enthält.

Zumindest in meinen Designs ist das Problem in etwa 95% dieser Fehlersituationen auf veraltete/schlecht geschriebene installierte Plugins zurückzuführen. Die anderen 5% stammen aus Konflikten zwischen aktuellen Plugins und dem Thema. Daher würde meine Nachricht dem Benutzer vorschlagen, seine Plugins einzeln zu überprüfen und die Probleme zu beheben.

Ich habe eine Lösung dafür gefunden, aber nur für das Dashboard (in meinen Designeinstellungen). Im Wesentlichen lade ich die Homepage in einen Iframe und warte 5 Sekunden, bis eine Funktion in der Funktion document.ready() des Iframes mir die Nachricht "OK" sendet. Wenn dies nicht der Fall ist, zeige ich den Fehler an (ich verwende postMessage , um mit dem iframe-Dokument zu kommunizieren).

Wie kann ich das auch von der Startseite aus tun? Ohne pm, weil es zu schwer ist

Andere unzuverlässige Lösungen:

  • füge die Nachricht direkt nach <body> hinzu und verstecke sie mit Javascript (mit js nach der Nachricht); Das Problem ist, dass nach der Prüfung möglicherweise Fehler auftreten
  • fügen Sie die Nachricht an einer beliebigen Stelle im HTML-Code hinzu und entfernen Sie sie mit jQuery in document.ready. Inakzeptabel, da der Benutzer die Nachricht 2-3 Sekunden lang sieht, während der die Site geladen wird ...
1
onetrickpony

Warum nicht einfach das "Entwicklertool" des Browsers verwenden, um die Fehler und den Code anzuzeigen, der den Fehler verursacht hat? Ich weiß, dass für IE, Firefox und Safari jeweils Entwicklertools verfügbar sind (ich benutze sie ständig). Ich weiß nichts über die Funktionen anderer Browser.

2
user10418

Ich habe gerade eine schnelle Suche durchgeführt, um zu sehen, ob JavaScript eine globale Fehlerbehandlungsfunktion hat, die Sie verwenden können, und habe window.onerror gefunden. Ich habe nicht weiter nachgeforscht, ob es gut unterstützt wird, aber vermutlich könnten Sie die window.onerror -Funktion verwenden, um eine Ajax-Anfrage an PHP zu senden, die Seite, Browser, wahrscheinlich fehlgeschlagene Skriptinformationen usw. senden und dann PHP verwenden könnte Um dem Administrator eine E-Mail zu senden, senden Sie diese Information per E-Mail. Auf diese Weise kann es von jedem Benutzer ausgelöst werden, der die Site anzeigt.

1
patnz