Thomas Mayer: Browserweiche für JavaScript? (Keine CSS-Browserweiche!)

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

  1. 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.

    conditional comments

    Gruß Gunther

    1. Hallo,

      conditional comments

      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

      1. 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

  2. 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 ;)

  3. 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

  4. @@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

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    1. [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

    2. 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

      --
      Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
      (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)
      1. 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

        1. 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

          --
          Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
          (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)
      2. @@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

        --
        Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
        1. 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 #666}

          *+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

          --
          „This is the author's opinion, not necessarily that of Starbucks.“
          1. @@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

            --
            Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
          2. 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

            --
            Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
            (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)
        2. 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

          --
          Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
          (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)
  5. 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

    --
    Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
    (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)
  6. 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

    1. 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

      --
      „This is the author's opinion, not necessarily that of Starbucks.“
      1. 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

        1. [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ü,

          Kai

          --
          Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
          selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
          Mein Selfhtml-Kram