• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Browser auf JavaScript prüfen. Aber wie?

bweichel

New member
Hi,

wie kann ich denn kontrollieren ob JavaScript im Browser aktiviert ist? Würde ganz gerne, sofern JS nicht aktiviert ist dem Besucher eine Meldung ausgeben, das die Website nur teilweise funktioniert.
 
Solltest du xhtml konform gestalten wollen, ist <noscript> eher ungeeignet. Aber für diesen Fall kann man das Verhalten eines <noscript>-Tags mit einem gewöhnlichen <span> simulieren.
Code:
<span id="noscript">Diese Seite benutzt...und deswegen funktionieren...nicht.</span>
Beim Laden der Seite lässt du diesen Tag per JavaScript entfernen. In Browsern die JS deaktiviert haben/nicht können bleibt er somit logischerweise stehen.
 
Solltest du xhtml konform gestalten wollen, ist <noscript> eher ungeeignet.
??

Damit hatte ich bisher keine Probleme - der Tag existiert doch auch in xhtml? Prinzipiell würde ich den <noscript> Tag der Javascript-Variante vorziehen (erscheint mir auch in Bezug auf Suchmaschinen sinnvoll).
 
Hm, da war ich wieder etwas vorschnell. Hatte irgendwie noch im Kopf, <noscript> gehöre zu den deprecated Elements... Vielleicht auch nur Wunschdenken :) Ich entschuldige mich auf jeden Fall erst mal für das unsinnige Geschwafel in Post #3.
 
Damit hatte ich bisher keine Probleme - der Tag existiert doch auch in xhtml?
Kommt auf die Version an.

In XHTML 5 ist NOSCRIPT nicht erlaubt (in HTML 5 schon).

(Davon abgesehen darf in HTML Text direkt im Element stehen, in den XHTML-Varianten, in denen NOSCRIPT erlaubt ist, hingegen nicht.)


Prinzipiell würde ich den <noscript> Tag der Javascript-Variante vorziehen (erscheint mir auch in Bezug auf Suchmaschinen sinnvoll).
Beides macht bezügl. Suchmaschinen null Unterschied.

Es gibt nur einen Unterschied beim User: NOSCRIPT ist relevant, wenn der Client überhaupt kein JS kann (mal den NN 2 ausgenommen). Die SPAN-Variante ist dann relevant, wenn der Client kein DOM beherrscht - egal ob JS aktiv ist oder nicht.

Meistens programmiert man heutzutage aber mittels DOM (vereinfacht gesagt: Web-2.0-Zeugs) - und da ist nur die SPAN-Variante sinnvoll ...
 
Kommt auf die Version an.
In XHTML 5 ist NOSCRIPT nicht erlaubt (in HTML 5 schon).

Das wusste ich nicht. Da <noscript> semantisch mehr aussagt als <span> hätte ich mir gewünscht, dass das drin bleibt.

Es gibt nur einen Unterschied beim User: NOSCRIPT ist relevant, wenn der Client überhaupt kein JS kann (mal den NN 2 ausgenommen). Die SPAN-Variante ist dann relevant, wenn der Client kein DOM beherrscht - egal ob JS aktiv ist oder nicht.
Deine Aussage kann ich mit
Code:
<body>
<noscript>
Test...
</noscript>
blibb
</body>
nicht nachvollziehen: Schalte ich js aus, erscheint der Text wie gewünscht - m.E. ein sinnvolleres Verhalten, als wenn dies ab Version 2 ignoriert wird.

EDIT: Hatte Deinen Post ungenau gelesen, sorry. Selbstverständlich muss auf das DOM geprüft werden - dies ist dann allerdings Sache des Javascripts (und muss dann ja aktiviert sein).
 
Zuletzt bearbeitet:
Da <noscript> semantisch mehr aussagt als <span> hätte ich mir gewünscht, dass das drin bleibt.
Wobei ich nie verstanden habe, warum NOSCRIPT nie im HEAD erlaubt war ...

nicht nachvollziehen: Schalte ich js aus, erscheint der Text wie gewünscht - m.E. ein sinnvolleres Verhalten, als wenn dies ab Version 2 ignoriert wird.
Doppeltes Mißverständnis: "NN2 mal ausgenommen" meinte: Der Netscape Navigator 2.0 (mit JavaScript 1.0) kannte noch kein NOSCRIPT (kam erst mit dem NN3).

Ansonsten: Heute meint man ja eher so etwas:

<p id="noscript">Um die Website vollständig nutzen zu können, wird ein Browser mit JavaScript V1.5 oder neuer benötigt!</p>

(weil mit JS 1.5 das DOM Einzug hielt - also getElementById(), style, ... -, und, natürlich, "Ajax".)

Selbstverständlich muss auf das DOM geprüft werden - dies ist dann allerdings Sache des Javascripts (und muss dann ja aktiviert sein).
Jo. Und wenn nix DOM oder nix JS überhaupt, dann bleibt obige Warnmeldung halt sichtbar.

Die Alternative wäre ja, neben dem (allgemeinen) NOSCRIPT-Text ggf. zusätzlich mit write() einen Hinweis auszugeben, falls JS vorhanden ist, aber DOM vom Client nicht unterstützt wird ...
 
Kommt auf die Version an.

In XHTML 5 ist NOSCRIPT nicht erlaubt (in HTML 5 schon).

(Davon abgesehen darf in HTML Text direkt im Element stehen, in den XHTML-Varianten, in denen NOSCRIPT erlaubt ist, hingegen nicht.)
Da möchte ich mich kurz einmischen, allerdings mit dem Vorbehalt, das ich nicht mehr so ganz auf dem Laufenden bin, was das W3C betrifft.
Die arbeiten mir einfach zu langsam und zu widersprüchlich, weswegen ich das Geschehen dort nicht mehr so intensiv verfolge.
Ich reagiere nur noch auf Neuerungen, wenn diese akut sind.

Aber zum Punkt.
Meines Wissens gibt es kein XHTML 5 (Gegenbeweis aber erwünscht).
Erstmal sollte ja XHTML 2 kommen.
Bei HTML 5 ist es ja nur so, das man ein Dokument als text/html oder als application/xhtml+xml parsen lassen kann, was aber nicht gleichbedeutend mit dem Begriff XHTML 5 ist.
Link: HTML 5, one vocabulary, two serializations - W3C Q&A Weblog

noscript ist übrigends in den Varianten html 4.01 strict, xhtml 1.0 strict und xhtml 1.1 durchaus erlaubt, weswegen es in den gemäßigteren Versionen ebenfalls benutzt werden kann.
Was ja logischerweise auch Sinn macht.

Nachtrag: Ich habe die DTD's der oben genannten geprüft...
 
Zuletzt bearbeitet:
Da möchte ich mich kurz einmischen, allerdings mit dem Vorbehalt, das ich nicht mehr so ganz auf dem Laufenden bin, was das W3C betrifft.
Die arbeiten mir einfach zu langsam und zu widersprüchlich, weswegen ich das Geschehen dort nicht mehr so intensiv verfolge.
Willkommen im Club. :D

Kurzform: Was das W3C macht, interessiert/will (fast) keine Sau. Die Web Hypertext Application Technology Working Group entsteht (inkl. Mozilla, Apple & Opera), und entwickelt, unabhängig vom W3C, HTML 5. Zeit verstrich, die Entwicklung gedieh, und das W3C stand nun vor der Wahl: Entweder ihr macht mit, oder HTML findet zukünftig im Wesentlichen ohne euch statt. W3C knickt nach einiger Zeit ein, schwenkt das weiße Fähnchen, und akzeptiert (X)HTML 5 letztlich als "offiziellen W3C-Standard".

Die HTML-5-Dokus sind als Double Content sowohl beim W3C, als auch bei der WHATWG präsent.

Ich reagiere nur noch auf Neuerungen, wenn diese akut sind.
HTML 5 ist bereits aktuell, da teilweise implementiert (z.B. CANVAS). "Wirklich verbschiedet" wird es aber erst, wenn mind. 2 "große" Browser den Standard komplett umsetzen (man wollte auch diesen Fehler des W3Cs vermeiden).

Meines Wissens gibt es kein XHTML 5 (Gegenbeweis aber erwünscht).
Erstmal sollte ja XHTML 2 kommen.
Ja, es gibt nur "HTML 5" und "HTML 5 in XML-Notifikation". Letzteres wird informell aber gerne zu "XHTML 5" verkürzt. Eine Verwechslung mit dem XHTML vom W3C halte ich auch für ausgeschlossen. Erstens weil das W3C (fast) niemanden (mehr) interessiert, zweitens weil es ca. 100 Jahre dauern dürfte, bis das W3C mit seiner Zählung zu Nr. 5 kommen wird (mindestens - wenn überhaupt). :evil:

Fazit: (X)HTML 5 ist bereits (teilweise) da und erfreut sich (s.o.) bei den relevanten Personen großer "Beliebtheit". XHTML 2 hingegegen wird noch laaaaaaange auf sich warten lassen ...


noscript ist übrigends in den Varianten html 4.01 strict, xhtml 1.0 strict und xhtml 1.1 durchaus erlaubt,
Etwas gegenteiliges habe ich auch nicht behauptet. In XHTML 5 hingegen (oder von mir aus auch: HTML 5 in XML-Notation) ist es hingegen nicht erlaubt (in HTML 5 hingegen schon).

Nachtrag: Für JS-Entwickler ist, neben CANVAS, ein Punkt von IMHO besonderer Relevanz: Grundregel von HTML war stets, daß unbekannte Tags & Attribute zu ignorieren sind. Es war aber nicht definiert, wie das DOM damit umgeht (na ja, zu Anfang gab es ja kein DOM, und später war das W3C ja der Meinung, daß es unbekannte Tags & Attribute nicht zu geben hätte). Aktuelle Praxis ist: Alle Browser können unbekannte Attribute via DOM ansprechen, alle Browser bis auf IE können unbekannte Tags via DOM ansprechen. Mit HTML 5 ist nun definiert, daß unbekannte Tags & Attribute im DOM repräsentiert sein müssen.
 
Zuletzt bearbeitet:
Also ich finde das W3C ist eine tolle Sache. Wahrscheinlich wird es langsam schwerfällig, aber es hat auch eine grosse Verantwortung. Und solange die für mich bedeutenden Browser den Empfehlungen des W3Cs folgen, werde ich es auch tun. Immerhin verdanken wir dem W3C auch den Standard den wir heute geniessen dürfen, sonst würden wir immer noch im Chaos der frühen 90er Jahre wuseln.

(x)HTML 5 sieht ja interessant aus, bloss dürfen wir da auf die "grossen" Features ja erst noch warten bis die Browser soweit sind, diese zu unterstützen. Die beste Spezifikation nützt nichts ohne Browser.
 
Zur Ursprungsfrage: Du könntest auch eine JavaScript-Weiterleitung anlegen.
Ist JS aktiviert, wird auf Deine gewünschte Seite umgeleitet.
Wenn nicht, kannst Du dem User auf der Default-Seite mitteilen, er solle JS aktivieren.
 
Eine Javascript-Weiterleitung ist suchmaschinentechnisch nicht zu empfehlen. Die Seite normal anzeigen und Hinweis anzeigen bei deaktiviertem Script gibt der Suma wenigstens noch die Chance "etwas" zu finden. Es liegt dann natürlich auch in der Hand von dir dieses "Etwas" zu gestalten, heisst den Code so schreiben, dass keine essentiellen Informationen ohne Javascript verlorengehen.
 
Eine Javascript-Weiterleitung ist suchmaschinentechnisch nicht zu empfehlen.
Ich weiß, ich wollte nur noch eine weitere Möglichkeit aufführen.
Und vielleicht handelt es sich ja um eine Seite, bei der es nicht so wichtig ist, ob Suchmaschinen dort unbedingt rein müssen.
 
Wahrscheinlich wird es langsam schwerfällig,
Also ich mache jetzt seit 12 Jahren Webseiten, und glaub mir: Das W3C war schon immer so lahm und "neben der Kapp". :D

Keiner der Meilensteine im Webdesign ging auf das W3C zurück. Alles hat sich über den Kopf oder sogar explizit gegen Konkurrenzentwürfe des W3C durchgesetzt: Bilder, Tabellen, DOM0, Scripting, Cookies (Netscape), CSS (Opera), modernes DOM, Ajax, innerHTML (MS).

Einzig XHTML in Reinform und als Ablösung von HTML war eine Sache vom W3C - und das wurde mit HTML 5 gerade abserviert (jedenfalls als Standard-ML fürs Web).

Und das, obwohl die großen Browserhersteller allesamt Mitglieder des W3C sind. Und diese Browserhersteller haben auch die WHATWG als "Konkurrenz" gegründet - und siehe da: es gibt Fortschritte. Also irgendwo ist da der Wurm drin ...

Und solange die für mich bedeutenden Browser den Empfehlungen des W3Cs folgen,
Tun sie das? IMHO tun sie das, wo es ihnen in den Kram paßt, und ansonsten eben nicht. Alle!

Immerhin verdanken wir dem W3C auch den Standard den wir heute geniessen dürfen, sonst würden wir immer noch im Chaos der frühen 90er Jahre wuseln.
Kaum eine Seite im Web ist standardkonform. W3C-Konformität ist die absolute Ausnahme.

Sie ist sogar bei XHTML die absolute Ausnahmen - und XHTML ist nicht zuletzt entstanden, um die Autoren zu mehr Standardkonformität zu "zwingen".

(x)HTML 5 sieht ja interessant aus, bloss dürfen wir da auf die "grossen" Features ja erst noch warten bis die Browser soweit sind, diese zu unterstützen.
Allerdings stehen hinter HTML 5 die Browserhersteller. Es wurde von ihnen entwickelt.

Ansonsten: Mit HTML 5 wurde die "vorübergehende" "Versionitis" des W3C explizit über Bord gekippt. Nach dem Verständnis gibt es eigentlich kein HTML 4 oder 5 mehr. Es gibt nur noch HTML (so wie es auch anfing).

Dennoch: Natürlich hat das W3C einen Wert. Und einige der Entwürfe im XHTML-Bereich sind ja auch sehr sinnvoll und vielversrpechend. Aber man sollte es nicht überschätzen. "Sauberen" Code zu schreiben ist nichts, wozu man das W3C braucht.

Daß sich Browserhersteller mit eigenen Features überboten haben, konnte das W3C auch nicht verhindern - und verhindert es auch in Zukunft nicht. Da muß man sich bloß die proprietären CSS-Erweiterungen von Apple anschauen.

Ob man das alles nutzt, liegt in der Verantwortung jedes Coders - nach wie vor ...
 
[...] HTML 5 ist bereits aktuell [...]
Naja, aktuell ist bei mir aber was anderes:
Sowohl X/HTML 5 als auch XHTML 2 befinden sich im Zustand eines Arbeitspapiers. Beide Spezifikationen werden sich höchstwahrscheinlich noch ändern und es werden Jahre vergehen, bevor sie zu empfohlenen und gebräuchlichen Technologien werden. Dieser Artikel basiert auf den "Working drafts" der Spezifikationen, Stand Februar 2007.
Quelle: X/HTML 5 im Vergleich zu XHTML 2
So lange da nichts wesentliches passiert, bleibe ich bei XHTML 1.0!
 
(X)HTML 5, W3C-HTML & Standards allgemein

Naja, aktuell ist bei mir aber was anderes:
Mehr oder weniger diskussionswürdige Meinungsäußerungen von Dritten wie dieser "Vergleich", sind mir halt egal.

Für mich ist einzig relevant, ob ich ein HTML(-5)-Feature sinnvoll finde, oder nicht (die 5 ist geklammert, da das für mich schon seit HTML 1 gilt). Ist ein Feature sinnvoll, dann nutze ich es. Unterstützen Browser dies bereits: umso besser. Unterstützen sie es noch nicht: dann freue ich mich auf den Tag, an dem meine Seiten per Browserupdate besser werden.

So verfahre ich seit Anfang an, was mit ein wichtiger Grund war, warum ich die vorübergehende "Versionitis" des W3Cs nie mitgemacht habe.

Und ein wichtiger Unterschied zw. XHTML 2 und (X)HTML 5 ist halt, daß ersteres vollkommen inkompatibel zu den heutigen HTML-Seiten (und allen heutigen Browsern) ist, und es auf absehbare Zeit auch keine Browserunterstützung erfahren wird. (X)HTML 5 hingegen ist eine Entwicklung der Browserhersteller, ist ab- und aufwärtskompatibel, und teilweise schon umgesetzt.

So lange da nichts wesentliches passiert, bleibe ich bei XHTML 1.0!
Jedem das seine! :icon7:

Ich gehe davon aus, daß Du dann natürlich auch so konsequent bist, und z.B. opacity oder overflow-x noch nicht benutzt, weil z.Zt. CSS 2.1 noch aktuell, und CSS 3 noch nicht fertig ist! Daß gänzlich proprietäre CSS-Erweiterungen für dich per se tabu sind, versteht sich da ja ganz von selbst.

Natürlich nutzt Du auch nur den Umfang von ECMAScript. Proprietäre JavaScript-Features von Mozilla und die proprietären DOM- & JScript-Methoden/Eigenschaften von MS nutzt Du natürlich auch nicht. Auch verwendest Du keine Script-Elemente, die zwar sonst jeder Browser beherrscht, auch jeder Programmierer nutzt, und auch zur Standardisierung anstehen, die aber (noch) nicht standardisiert sind, wie z.B. innerHTML oder window.

Oder "Ajax": Lächerlich! Nicht standardisiert! W3Cs "DOM Load & Save" dagegen ist die passende Technik der Wahl. Sollen die Leute doch gefälligst Opera fürs Web 2.0 verwenden! Wo kämen wir hin, wenn jeder Webautor nicht standardisierte Techniken verwenden würde, nur weil sie leistungsfähiger sind und von allen unterstützt werden! :eek:

Klar, kann man alles machen.

Ich kann aber trotzdem nur jedem empfehlen, auf vermeintlich sinnvolle aber letztlich nur selbstbezogene "Standarditis" zu verzichten, und Realität und Nutzen in den Vordergrund zu stellen ...
 
Zuletzt bearbeitet:
Zurück
Oben