Umstellung Transitional zu Strict
Jay
- javascript
Hallo
Ich habe folgende Frage.Ich arbeite mit ein paar Freunden an einem etwas größerem Projekt.Sehr umfangreich und komplex.Wir nutzen dabei auch massig viel Javascript und haufenweise HTML ;)
Nun ist meine Frage.Wir würden gerne auf den HTML 1.0 strict mode wechseln tun es aber im Moment noch nicht da wir befürchten viele unserer Javascripte könnten sich falsch oder anderst verhalten.
Könnten Probleme auftretten?Ich habe viel gelesen über verschiedene Attribute die Strict nicht zulässt etc...Könnt ihr mir hierzu konkreteres sagen?
Danke im vorraus
Gruß Jay
bzw. Mich würde auch sehr interessieren welche Generellen Probleme mit HTML 4.01 Strict auftretten!Das würde sehr helfen.
Hallo,
Wir würden gerne auf den HTML 1.0 strict mode wechseln
Die Unterscheidung zwischen Strict und Transitional gibt's AFAIK erst in Verion 4.x.
Ich gehe mal davon aus, dass du XHTML meinst.
…da wir befürchten viele unserer Javascripte könnten sich falsch oder anderst verhalten.
Könnten Probleme auftretten?
Nö. JavaScript hat nichts mit der verwendeten (X)HTML-Version zu tun.
Ich habe viel gelesen über verschiedene Attribute die Strict nicht zulässt etc...Könnt ihr mir hierzu konkreteres sagen?
Ja: Vermeide alle Attribute/Elemente, die nur die Darstellung beeinflussen sollen oder etwas mit dem Frame-Konzept zu tun haben.
mfg. Daniel
Danke erstmal an dich Daniel.Ich meine aber schon explizit HTML 4.01.
Was mir gerade eingefallen ist.Es wäre noch wichtiger zu wissen:
Kann man im STRICT MODE selbstgeschriebene HTML Attribute an HTML Elemente hängen?
Und wenn nicht wie reagieren dann die Browser darauf?
z.b. <input type="text" myMagicSetting="mySectretValue" />
Moin!
Kann man im STRICT MODE selbstgeschriebene HTML Attribute an HTML Elemente hängen?
Das kannst du genau so, wie im Transitional-Modus. Aber dein Dokument ist in beiden Fällen nicht mehr valide - wozu dann also das Gehampel mit "Strict"?
- Sven Rautenberg
wozu dann also das Gehampel mit "Strict"?
Um eine gleiche Darstellung in allen Browsern zu erhalten!
Jay
Hallo Jay,
wozu dann also das Gehampel mit "Strict"?
Um eine gleiche Darstellung in allen Browsern zu erhalten!
Das hat nichts _direkt_ mit Strict vs. Transitional zu tun. Es kommt immer darauf an, was man konkret verwendet. <u> und <s> sind z.B. Transitional - allerdings verursachen sie in so ziemlich jedem Browser die gleiche Darstellung - und per CSS kann man sie natürlich auch noch umformattieren (wobei dann der "Sinn" von <u> und <s> natürlich verloren geht ;)). Wenn Du mit Transitional keine gleiche Darstellung erhälst, dann nutzt Du bestimmte Dinge, die eben dazu führen - die aber nicht zwangsläufig auf Transitional beschränkt sind. Deinen Code auf Strict umstellen zu wollen, bringt Dir höchstens insofern etwas, als dass Du die problematischen Stellen unter Umständen gleich mit erschlägst.
Viele Grüße,
Christian
hi,
Kann man im STRICT MODE selbstgeschriebene HTML Attribute an HTML Elemente hängen?
Kann man das in einem der anderen Modi?
Und wenn nicht wie reagieren dann die Browser darauf?
Wie reagieren sie in einem der anderen Modi darauf?
Ist dieses Verhalten irgendwo definiert, oder zufällig?
gruß,
wahsaga
Im Transitional funktionieren selbstgeschriebene Attribute und verhalten sich genauso wie wir das wollten.
Da Strict aber strenger ist könnte es ja durchaus sein das das Attribute dann nicht erkannt wird ignoriert oder gar Fehler geschmissen werden.Das wollen wir natürlich vermeiden!
Hallo,
Im Transitional funktionieren selbstgeschriebene Attribute und verhalten sich genauso wie wir das wollten.
Wozu brauchst du die eigentlich?
mfg. Daniel
Ums kurz zu beantworten.Wir haben eine Software die über unsere Templates drüberläuft und den Text der in diesem selbstgeschriebenen Attribute/Element steht ausließt.Es sucht eine zugehörigkeit in der Datenbank und gibt im generierten template dann an dieser Stelle eine Übersetzung aus.Wie gesagt es ist etwas komplexer...Deswegen ist ein switch auf HTML 4.01 STRICT mit Vorsicht vorzugehen.Es wäre eben äusserst wichtig das alle Browser unser HTML gleich darstellen für unsere Kunden und es darf da eben auch im JS keine Probleme geben!
Hallo,
Wir haben eine Software die über unsere Templates drüberläuft und den Text der in diesem selbstgeschriebenen Attribute/Element steht ausließt.
Handelt es sich hierbei um ein serverseitiges Script? Dann wäre es besser, wenn dieses die Attribute/Elemente einfach löschen würde, bevor sie den Code an den Browser sendet. Wenn du das nicht machst, wird der Browser den parse-Vorgang aber auch nicht abbrechen.
mfg. Daniel
Es sendet nicht wirklich an den Browser.Wir lassen die Templates so für jede unserer Sprachen generieren.Und stellen sie dann für den User so zur verfügung.Es handelt sich bei uns nicht um html seiten sondern um "isml" und da ist noch ein bishen anderes Vorgehen.Aber wir verwenden eben html darin.
Hallo,
Es sendet nicht wirklich an den Browser.
Irgendwas muss der Browser aber darstellen.
Wir lassen die Templates so für jede unserer Sprachen generieren.Und stellen sie dann für den User so zur verfügung.Es handelt sich bei uns nicht um html seiten sondern um "isml" und da ist noch ein bishen anderes Vorgehen.Aber wir verwenden eben html darin.
Gut. Wenn der Browser die Elemente nicht darstellen/verarbeiten muss, dürfte es keine Probleme geben. Valide ist das natürlich nicht.
Am besten wäre es, wenn du komplett dein eigenes XML schreibst und dieses dann per http://de.selfhtml.org/xml/darstellung/xslgrundlagen.htm@title=XSLT als HTML an den Browser sendest.
mfg. Daniel
Es wäre eben äusserst wichtig das alle Browser unser HTML gleich darstellen ...
Die Frage ist ob du wirklich Transitional und Strict meinst oder Quirks- oder Standardmode, im ersten Fall spielt der Unterschied für eine JS keine Rolle, im zweiten schon eher.
Struppi.
Kannst du mir das näher erläutern??
Welche Rolle würde es denn für mein JS spielen?
Kannst du mir das näher erläutern??
Welche Rolle würde es denn für mein JS spielen?
Quirks oder Standard spielt für die folgenden Dinge eine Rolle:
Boxmodellbug?
CSS Maßangaben.
Versuch im IE die Größe des Browserfensters zu ermitteln.
Struppi.
Boxmodellbug?
Was genau ist das?
CSS Maßangaben.
Meinst du das im Standart Attribute wie width,height nicht genutzt werden können und durch z.b. margin (float oder auto) nutzt.
Versuch im IE die Größe des Browserfensters zu ermitteln.
Das machen wir durchaus.Welche Probleme könnten denn da auftretten?Da wir so eine Funktion doch oft verwenden um Positionen von bestimmten Bildern festzustellen..
Mfg Jay
Boxmodellbug?
Was genau ist das?
Du kennst google
CSS Maßangaben.
Meinst du das im Standart Attribute wie width,height nicht genutzt werden können und durch z.b. margin (float oder auto) nutzt.
Nein. Probier es einfach aus, lass die Einheit weg und versetz den Browser in den Quriks und dann in den Standardmode.
Versuch im IE die Größe des Browserfensters zu ermitteln.
Das machen wir durchaus.Welche Probleme könnten denn da auftretten?Da wir so eine Funktion doch oft verwenden um Positionen von bestimmten Bildern festzustellen..
Das der zwei verschiedene Dokumenten Wurzeln kennt. document.body und document.documentElement
Struppi.
Meinst du das im Standart Attribute wie width,height nicht genutzt werden können und durch z.b. margin (float oder auto) nutzt.
Nein. Probier es einfach aus, lass die Einheit weg und versetz den Browser in den Quriks und dann in den Standardmode.
Und wie mache ich das?
Versuch im IE die Größe des Browserfensters zu ermitteln.
Das der zwei verschiedene Dokumenten Wurzeln kennt. document.body und document.documentElement
Versteh ich nicht ganz
Gruß Jay
Bitte laß die Zitatzeichen (») stehen und verwende keine eigenen, sonst sieht man nicht was ich oder du geschrieben habe
Meinst du das im Standart Attribute wie width,height nicht genutzt werden können und durch z.b. margin (float oder auto) nutzt.
nein meine ich nicht, probier es aus.
Nein. Probier es einfach aus, lass die Einheit weg und versetz den Browser in den Quriks und dann in den Standardmode.
Und wie mache ich das?
Das der zwei verschiedene Dokumenten Wurzeln kennt. document.body und document.documentElement
Versteh ich nicht ganz
Wie ermittelst du den die Größe des browserfesnters?
Struppi.
Das der zwei verschiedene Dokumenten Wurzeln kennt. document.body und document.documentElement
Versteh ich nicht ganz
Wie ermittelst du den die Größe des browserfesnters?
Ich habs mir nochmal angeschaut bei uns und wir benutzen diese Elemente doch nicht.Wir machen das ganz anderst.Hab aber auch nicht ich geschrieben.Aber könntest du mir erläutern wie das Probleme machen könnte mit den 2 verschiedenen Dokumenten Wurzeln?
Noch eine zusätzliche Frage.
Wenn ich sagen wir mal viele Attribute und Elemente in meinem HTML file habe die Strict nicht unterstützt,missbilligt oder sonst was und dann Strict oben als DTD angebe.Werden dann diese Elemente,Attribute einfach ignoriert und ich sehe dann praktisch das sie nicht angewandt werden...oder heisst das dann einfach nur das sie weiterhin benutzt werden nur das html file eben nichtmehr valide ist?
Hallo,
Der Browser setzt Transitional-Code auch in Strict-Dokumenten wie gewohnt um, das Dokument ist dann aber nicht valide.
Mathias
hi,
Wenn ich sagen wir mal viele Attribute und Elemente in meinem HTML file habe die Strict nicht unterstützt,missbilligt oder sonst was und dann Strict oben als DTD angebe.Werden dann diese Elemente,Attribute einfach ignoriert und ich sehe dann praktisch das sie nicht angewandt werden...oder heisst das dann einfach nur das sie weiterhin benutzt werden nur das html file eben nichtmehr valide ist?
Das heisst dann, dass wir uns diese Diskussion sparen können, weil dein Wunsch, Strict zu benutzen, dadurch ad absurdum geführt wird.
gruß,
wahsaga
Wie ermittelst du den die Größe des browserfesnters?
Ich habs mir nochmal angeschaut bei uns und wir benutzen diese Elemente doch nicht.Wir machen das ganz anderst.Hab aber auch nicht ich geschrieben.Aber könntest du mir erläutern wie das Probleme machen könnte mit den 2 verschiedenen Dokumenten Wurzeln?
Naj, im Quirksmode werden nur die Eigenschaften von document.body gesetzt im Standardmode sind die gleichen Eigenschaften unter document.documentElement gefunden.
Struppi.
Naj, im Quirksmode werden nur die Eigenschaften von document.body gesetzt im Standardmode sind die gleichen Eigenschaften unter document.documentElement gefunden.
Also müsste man sozusagen eine if-Abfrage einbauen um rauszufinden in welchem der beiden Modi man sich befindet...
Ich hab beim googlen gelesen das document.write nichtmehr erlaubt sei im Strict Modus.Also wäre dann allein durch das verwenden dieser Methode das File nicht Valide?
Moin
Ich hab beim googlen gelesen das document.write nichtmehr erlaubt sei im Strict Modus.Also wäre dann allein durch das verwenden dieser Methode das File nicht Valide?
Natürlich kannst und darfst du auch in stricten Seiten mit write() rumschreiben. Darauf achten, das das Ergebnis davon immer noch valide ist musst du sowieso.
Das Verändern des Documents mittels Methoden des DOM stattdessen hilft allerdings Fehler durch wüstes write()-Rumgeschreibsel vermeiden.
Gruß
rfb
Ok das habe ich verstanden danke.
Ich hab jetzt aber noch ne Frage zum DOCTYPE Switch...Ich hab mir hier die Seite
http://www.carsten-protsch.de/zwischennetz/doctype/einleitung.html
angeschaut und bin nun verwirrt.
Jetzt gibt es doch die DTD Strict,Transitional und loose.
Was ist dann jetzt genau der Standart,Almost Standart und Quirks Mode?
Das verwirrt mich jetzt.Und wann genau ist welcher denn Aktiv?
http://www.carsten-protsch.de/zwischennetz/doctype/einleitung.html
angeschaut und bin nun verwirrt.
Du hättest sie auch lesen sollen.
Jetzt gibt es doch die DTD Strict,Transitional und loose.
Was ist dann jetzt genau der Standart,Almost Standart und Quirks Mode?
[Zitat von der Seite]
Die Browser entscheiden anhand der Dokumenttyp-Deklaration am Anfang des HTML-Dokumentes in welchen Darstellungsmodus sie schalten. Die gängigsten Dokumenttyp-Deklarationen sind im folgenden genannt, unterteilt in die drei Darstellungsmodi, die sie bewirken: »Full Standards Mode«, »Almost Standards Mode« und »Quirks Mode«. Die nicht genannten »Frameset«-Varianten verhalten sich dabei genauso wie die entsprechenden »Transitional«-Varianten.
Die Unterscheidung zwischen Full und Almost Standards Mode tritt in Mozilla ab Version 1.0 (Netscape 7.0), Opera ab Version 7.5 und Safari ab Version 0.9 auf. Alle anderen Browser mit DOCTYPE-Switch schalten bei Verwendung der unter »Almost Standards Mode« genannten Dokumenttyp-Deklarationen in den Standards Mode. Wenn in den Beispielen nur der Standards Mode erwähnt ist, dann besteht kein Darstellungsunterschied zwischen dem Full Standards Mode und dem Almost Standards Mode.
Das genaue Verhalten der verschiedenen Browser kann man auf den Internetseiten der Browserhersteller nachlesen, die im Literaturverzeichnis genannt sind.
Struppi.
Ich hab beim googlen gelesen das document.write nichtmehr erlaubt sei im Strict Modus.Also wäre dann allein durch das verwenden dieser Methode das File nicht Valide?
strict gibt es für JS nicht.
Ich habe dir doch eine Seite gezeigt, die erklärt was es mit den Sachen auf sich hat, hast du die nicht gelesen?
Struppi.
hi,
Ich hab beim googlen gelesen das document.write nichtmehr erlaubt sei im Strict Modus.Also wäre dann allein durch das verwenden dieser Methode das File nicht Valide?
Unfug.
document.write funktioniert nicht mehr, wenn XHTML als XML geparst wird.
Auch dazu, warum das so ist, so sein muss, gibt es Erklärungen im Web.
Bevor du jetzt wieder fragst, informiere dich bitte wenigstens mal ein bisschen. Bisher hast du kaum etwas ausser halbgar Aufgeschnapptem von dir gegeben, was größtenteils Blödsinn war.
gruß,
wahsaga
Naj, im Quirksmode werden nur die Eigenschaften von document.body gesetzt im Standardmode sind die gleichen Eigenschaften unter document.documentElement gefunden.
Gibt es noch andere solcher Fälle?
Naj, im Quirksmode werden nur die Eigenschaften von document.body gesetzt im Standardmode sind die gleichen Eigenschaften unter document.documentElement gefunden.
Gibt es noch andere solcher Fälle?
Die Frage ist jetzt weit hergeholt. Was heißt noch andere Fälle? Ich hatte dir ursprünglich einige Beispiele genannt wo der Unterschied zwischen Quirks und Standard eine Rolle spielt. Falls du meinst ob unterschiedliche Objekte existieren bzw. angesprochen werden müssen, dass ist mir nicht bekannt.
Struppi.
Hi!
Im Transitional funktionieren selbstgeschriebene Attribute und verhalten sich genauso wie wir das wollten.
Sind aber dennoch falsch.
Da Strict aber strenger ist könnte es ja durchaus sein das das Attribute dann nicht erkannt wird ignoriert oder gar Fehler geschmissen werden.Das wollen wir natürlich vermeiden!
Wieso der Umstieg auf eine andere DTD?
Ist doch ziemlich egal, was du dort verwendest, wenn du so oder so invaliden Code schreibst.
Welchen Vorteil erwartest du davon, daß du Strict statt Transitional einsetzt?
Schöner Gruß,
rob
Hallo,
Sorry, ich muss mal nachhaken:
Obwohl der Thread schon ziemlich lang ist, weiß ich immer noch nicht, was du genau machst, was das mit HTML Transitional vs. Strict zu tun hat und was das ganze letztlich mit JavaScript zu tun haben soll. Du beschreibst von allem ein wenig, aber richtig verstanden habe ich nichts.
Über das JavaScript sagst du nur, dass es »massig viel« ist. Aber was machen diese Scripte genau und wo könnte deiner Meinung nach die Wahl zwischen Strict und Transitional relevant dafür sein?
Dann erzählst du von (serverseitigen?) Ersetzungen in Templates - welche Rolle spielt da dein JavaScript?
Mathias