Browserweiche für JavaScript? (Keine CSS-Browserweiche!)
Thomas Mayer
- javascript
Hallo zusammen,
wie man Browserweichen für CSS erstellt ist mir klar. Aber wie erstelle ich eine Browserweiche für ein JavaScript, welches erst ab IE 7 lauffähig ist? Alle Version des IS unter Version 7 sollen das JavaScript beim Laden der Seite ignorieren.
Leider habe ich zu meinem Problem keine Lösung gefunden. Die Suche zeigte mir nur Lösungen zu CSS-Browserweichen via JavaScript an. Das ist aber nicht mein Problem.
Vielen Dank im Voraus!
Gruß Thomas
Hallo,
wie man Browserweichen für CSS erstellt ist mir klar. Aber wie erstelle ich eine Browserweiche für ein JavaScript, welches erst ab IE 7 lauffähig ist? Alle Version des IS unter Version 7 sollen das JavaScript beim Laden der Seite ignorieren.
Gruß Gunther
Hallo,
oder du prüfst auf eine Javascript Eigenschaft, die erst ab Version 7 unterstützt wird. Welche da in Frage kommt, kann ich dir jetzt aus dem Stegreif leider auch nicht sagen.
Gruß Gunther
oder du prüfst auf eine Javascript Eigenschaft, die erst ab Version 7 unterstützt wird. Welche da in Frage kommt, kann ich dir jetzt aus dem Stegreif leider auch nicht sagen.
Ist doch ganz einfach: Die im Script verwendete. Irgendeinen Grund wird es ja haben, warum das Script nur für den IE7 gedacht ist - möglicherweise ist der auch mit JavaScript feststellbar.
Mathias
Alle Version des IS unter Version 7 sollen das JavaScript beim Laden der Seite ignorieren.
den hinweis bez. condidtional comments hast du ja bereits bekommen - eine alternative wäre aber, eine javascript-funktion zu prüfen, die nur der internet explorer 7 kennt, sonst aber kein anderer browser
das ist aber nicht ganz trivial ;)
wie man Browserweichen für CSS erstellt ist mir klar. Aber wie erstelle ich eine Browserweiche für ein JavaScript, welches erst ab IE 7 lauffähig ist?
Conditional Comments beim Einbinden des Scriptes oder Conditional Compilation im Script. Unter den Stichworten solltest du viel bei Suchmaschinen und im Forumsarchiv finden.
Mathias
@@Thomas Mayer:
Die Suche zeigte mir nur Lösungen zu CSS-Browserweichen
Was meinst du damit? CSS-Hacks? Oder conditional comments? Letzte haben mit CSS rein gar nichts zu tun tun und sind in SELFHTML (noch) ziemlich blöd eingeordnet. [BUG1231]
Für JavaScript gibt es conditional compilation. Musste nur noch die verschiedenen IEs unterscheiden.
Live long and prosper,
Gunnar
[CC] sind in SELFHTML (noch) ziemlich blöd eingeordnet. [BUG1231]
Also der Bug ist geschlossen und diese Fehlerdatenbank seit langem außer Betrieb. Wenn da noch etwas getan werden soll, bitte kurz unter https://redaktion.selfhtml.org/newticket ein Ticket öffnen.
Mathias
Hi,
Für JavaScript gibt es conditional compilation. Musste nur noch die verschiedenen IEs unterscheiden.
Mit Conditional Compilation kann man die IE-Versionen *nicht* unterscheiden, sondern nur die JScript-Versionen. Und die sind absolut unabhängig von der IE-Version (theoretisch wie auch praktisch!).
Gruß, Cybaer
Mit Conditional Compilation kann man die IE-Versionen *nicht* unterscheiden, sondern nur die JScript-Versionen. Und die sind absolut unabhängig von der IE-Version (theoretisch wie auch praktisch!).
Sicher? Was hältst Du von der Versionsübersicht im MSDN?
Siechfred
Hi,
Sicher?
Absolut.
Was hältst Du von der Versionsübersicht im MSDN?
Gibt an, mit welcher IE-Version welche JScript-Version eingeführt wurde.
Aber wie gesagt: Das eine hat mit dem anderen nur bedingt zu tun. D.h., wenn du dir einen neuen IE holst, dann kommt ggf. auch eine neue JS-Version auf deinen Rechner. Aber man kann auch eine neue JScript-Version haben, und immer noch den alten IE.
Ich habe schon an 'nem IE 5.5 mit JScript 5.6 gearbeitet (ursprünglich: Jscript 5.5), und 'nem IE 6 mit JScript 5.7 (ursprünglich: JScript 5.6). Mache ich sogar jeden Tag ... ;-)
MS hat die Script-Engine vom Rest-IE bewußt unabhängig gehalte ...
Gruß, Cybaer
@@Cybaer:
Mit Conditional Compilation kann man die IE-Versionen *nicht* unterscheiden, sondern nur die JScript-Versionen.
Ja. Jedenfalls nicht allein mit Conditional Compilation.
Also ein Griff in die Trickkiste: Mit CSS für verschiedene IE-Versionen für eine Eigenschaft verschiedene Werte setzen:
* html body {border: 0 none #666}
*+html body {border: 0 none #777}
und mit JScript abfragen:
/*@cc_on
[code lang=javascript]window.onload = function ()
{
alert(document.body.currentStyle.borderColor);
};
@*/[/code]
Live long and prosper,
Gunnar
Hi,
Also ein Griff in die Trickkiste:
Du meinst die Kiste mit den Extremumstaendlichkeiten?
Mit CSS für verschiedene IE-Versionen für eine Eigenschaft verschiedene Werte setzen:
*+html body {border: 0 none #777}
>
> und mit JScript abfragen:
>
> ~~~javascript
/*@cc_on
> [code lang=javascript]window.onload = function ()
> {
> alert(document.body.currentStyle.borderColor);
> };
@*/[/code]
Wie gesagt, halte ich fuer extrem umstaendlich; und dazu noch erst onload verfuegbar.
MfG ChrisB
@@ChrisB:
und dazu noch erst onload verfuegbar.
Schon früher:
<body>
<script type="text/jscript">
[code lang=javascript]/*@cc_on
[code lang=javascript]alert(document.body.currentStyle.borderColor);
@*/[/code]
<script>
<p>Lorem ipsum dolor sit amet.</p>
</body>[/code]
Live long and prosper,
Gunnar
Hi,
und dazu noch erst onload verfuegbar.
So: ja, anders: nein. Man kann ja den selectorText auslesen, sobald das Stylesheet verfügbar ist - da muß der BODY noch lange nicht für herhalten.
Da die IE<7 den letzteren Selektortext nicht kennen, melden sie hier ein "UNKNOWN".
Gruß, Cybaer
Hi,
Mit CSS für verschiedene IE-Versionen für eine Eigenschaft verschiedene Werte setzen:
Den Hinweis, daß man das natürlich auch dynamisch machen kann, erspare ich mir wohl lieber ... >;-)
Gruß, Cybaer
Hi,
Aber wie erstelle ich eine Browserweiche für ein JavaScript, welches erst ab IE 7 lauffähig ist?
Warum nicht?
Wg. der IE-Version generell? -> HTML Conditional Comments
Wg. der HTML-Engine? -> JScripts compatMode bzw. documentMode
Wg. der JScript-Version? Ist von der IE-Version unabhängig -> @_jscript_version
Aber für letzteres braucht es i.d.R. überhaupt keine Versionsabfrage. Man testet auf das Vorhandensein der notwendigen Methode oder Eigenschaft (z.B. mit typeof()) ...
Gruß, Cybaer
Hallo,
Aber wie erstelle ich eine Browserweiche für ein JavaScript, welches erst ab IE 7 lauffähig ist?
Der Testcode (Test der Parallelinstallationen mehrerer IEs) dürfte interessant für Dich sein:
http://www.lipfert-malik.de/webdesign/tutorial/multiple-ie.html
Oder andere Möglichkeiten nur per Javascript:
http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html
Grüsse
Cyx23
Hi,
Oder andere Möglichkeiten nur per Javascript:
http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html
"Testergebnis nach JavaScript-Fähigkeiten des Browsers: Opera 92"
Da bist du entweder ein paar Dutzend Versionen ueber der aktuellen, oder, sofern du einen Dezimalpunkt unterschlagen hast, ein paar Nachkommastellen unter der von mir verwendeten.
MfG ChrisB
Hallo,
ein paar Nachkommastellen unter der von mir verwendeten.
Vielleicht nicht ein paar, sondern ein Paar Stellen? Ab 9.5 aufwärts sollte "..Opera 95" o.ä. erkannt werden. Bedarf für eine noch detailliertere Unterscheidung sollte sich aus den JavaScript-Leistungen der betr. Browser m.E. sowieso kaum ableiten lassen.
Grüsse
Cyx23
[latex]Mae govannen![/latex]
ein paar Nachkommastellen unter der von mir verwendeten.
Vielleicht nicht ein paar, sondern ein Paar Stellen? Ab 9.5 aufwärts sollte "..Opera 95" o.ä. erkannt werden. Bedarf für eine noch detailliertere Unterscheidung sollte sich aus den JavaScript-Leistungen der betr. Browser m.E. sowieso kaum ableiten lassen.
Kann ich ebenfalls nicht nachvollziehen.
Bei mir wird korrekt Opera 9.6 / 9.2 erkannt, egal wie ich den UA ändere. (O9.61/O9.27)
Cü,