Mit noscript im Kopf: Gute Idee oder schlechte Idee?

8

Ich habe bemerkt, dass Facebook dies tut, wo sie eine Meta-Aktualisierung haben, die in einem <noscript> eingeschlossen im <head> -Tag eingeschlossen ist. Sie verwenden dies, um festzustellen, ob der Benutzeragent JavaScript aktiviert hat oder nicht.

Wir haben diese Methode aus zwei Gründen in Erwägung gezogen:

  1. Um automatisch zu einer nicht-js optimierten Version der Seite umzuleiten, wie Facebook es tut.
  2. Um ein nicht-js Stylesheet einzubinden, um hoffentlich den Fingerzeiger über Javascript-Anker sowie CSS3-Beschwerde-Browser zu deaktivieren, werden diese Buttons ausgeblendet, um sie deutlicher zu machen, sie sind deaktiviert (funktionieren nicht).

Wird die Verwendung dieser Methode aus den oben genannten Gründen nachteilige Auswirkungen haben, die sich auf einen großen Prozentsatz von Benutzeragenten auswirken?

    
anonymous-one 13.08.2011, 19:20
quelle

2 Antworten

6

Nein, es sollte keine übermäßig nachteiligen Auswirkungen geben, wenn Sie das <noscript> -Tag im Kopf verwenden.

Allerdings gibt es einige Nachteile von <noscript> :

  • Es funktioniert nur, wenn der Browser JavaScript nicht unterstützt oder wenn es deaktiviert ist. Der Inhalt des <noscript> -Tags ist unsichtbar, wenn das Javascript von einer Firewall blockiert wird.
  • Benutzeragenten mit sehr geringer JavaScript-Unterstützung ignorieren weiterhin <noscript> content.
  • Während die meisten Browser <noscript> im Kopf unterstützen, ist es technisch falsch X (HTML), also werden Ihre Seiten möglicherweise nicht validiert.

IMO, was Sie tun wollen, ist eine sehr gute Sache und ist eine angemessene Verwendung des Tags. Eine noch bessere Lösung wäre jedoch die Verwendung von Feature-Erkennung in Ihrem Javascript, um Javascript-Funktionen zu aktivieren, anstatt <noscript> zu verwenden, um sie zu deaktivieren.

Wenn Sie von HTML5-Funktionen abhängig sind, würde ich die Modernizr Bibliothek für diesen Zweck empfehlen.

    
Peter Olson 13.08.2011, 19:45
quelle
3

Für den zweiten Vorschlag empfehle ich den Ansatz, zunächst Ihren <html> -Elementen eine Klasse von no-js zu geben, diese Klasse dann sofort mit JavaScript zu entfernen und sie durch eine Klasse js (oder including) zu ersetzen eine Bibliothek wie Modernizr , die das automatisch macht). Auf diese Weise können Sie CSS-Stile sowohl auf aktivierte als auch auf deaktivierte JavaScript-Situationen ausrichten, indem Sie diese Stile mit .js oder .no-js voranstellen.

So etwas zum Beispiel:

%Vor%

Paul Irish spricht hier mehr darüber: Ссылка

    
Dave Ward 13.08.2011 19:43
quelle