[Frage] Browserweiche im Typoscript und Internet Explorer 11 TYPO3-Version: 4.5.27

  • kruempi kruempi
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    04. 12. 2013, 13:24

    Hallo liebe Community,

    folgendes Problem ist bei mir aufgetaucht: Meine Browserweichen funktionieren für den Internet Explorer nicht mehr wie gewünscht bzw. wie bisher.

    Ich habe bei mehreren Homepages bisher eine Browserweiche im Template mit folgendem Typoscript eingebaut

    1. [browser=netscape, mozilla, firefox]
    2. page.stylesheet = fileadmin/css/style.css
    3. [browser=opera, unknown]
    4. page.stylesheet = fileadmin/css/style.css
    5. [useragent=*Safari*]
    6. page.stylesheet = fileadmin/css/style.css
    7. [global]
    8. [browser=msie]
    9. page.stylesheet = fileadmin/css/style_ie.css
    10. [global]

    Funktionierte soweit bisher wunderbar. Jetzt habe ich aber festgestellt, dass sich der IE 11 scheinbar nicht davon angesprochen fühlt... er baut überhaupt keine css-datei ein.

    Ersatzweise habe ich dann folgendes Typoscropt versucht:

    1. page.includeCSS.file1 = fileadmin/css/style.css
    2. [browser = msie]
    3. page.includeCSS.file2 = fileadmin/css/style_ie.css
    4. [global]
    5.  
    6. bzw. in dieser Variante
    7.  
    8. [browser = msie]
    9. page.stylesheet = fileadmin/css/style_ie.css
    10. [ELSE]
    11. page.stylesheet = fileadmin/css/style.css
    12. [GLOBAL]

    Das sorgt dafür, dass auf einem Windows XP-System mit IE 8 das richtige Stylesheet - style_ie - angezeigt wird. Unter Windows 7 mit IE 11 funktioniert das nicht, es wird überhaupt kein Stylesheet eingebunden. Alle anderen Browser arbeiten korrekt und zeigen in beiden Typoscript-Varianten die style.css. Leider kann ich im Büro nur mit maximal Version IE 8 testen und auf einem weiteren Rechner mit IE 11. Ob also auch IE 9 und 10 betroffen sind, vermag ich nicht zu sagen. Für den Moment habe ich bei der betroffenen Webseite eine Hilfskonstruktion

    1. page.5 = TEXT
    2. page {
    3. 5 {
    4. value (
    5. <!--[if IE]>
    6. <link rel="stylesheet" type="text/css" href="fileadmin/css/style_ie.css" media="all">
    7. <style type="text/css">
    8. <!--
    9. #footer {margin-top:-119px;}
    10. -->
    11. </style>
    12. <![endif]-->
    13. )
    14. }
    15. }

    aber das kann nicht die Lösung sein.

    Ich bin für jede Hilfe dankbar.

    Merci im voraus
    Jochen


  • 1
  • etux etux
    Jedi-Meister
    0 x
    360 Beiträge
    13 Hilfreiche Beiträge
    04. 12. 2013, 16:06

    Warum willst Du [u]jedem[/u] Browser, die CSS-Datei über eine Browser-Weiche ausliefern?!?
    Wenn überhaupt, bräuchten nur die IEs kleiner 9, eine Sonderbehandlung.
    Der IE 11 identifiziert sich übrigens nicht mit „msie“.
    http://msdn.microsoft.com/en-us/library/ie/bg182625(v=vs.85).aspx#uaString

  • kruempi kruempi
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    04. 12. 2013, 17:06

    Danke für die Antwort.

    Ich will gar nicht [u]jedem[/u] Browser die CSS-Datei ausliefern. Das hatte sich nur ergeben, weil zur Anfangszeit der Homepage die darstellung unterschiedlich war in den verschiedenen Browsern und ich deshalb die Möglichkeit brauchte, darauf zu reagieren.

    Die wichtige Info für mich ist, dass der 11er sich nicht mehr als "msie" identifiziert. Ich werde jetzt also eine Weiche bauen, die das Stylesheet für IE allen IE <=9 zuweist und allen anderen Browsern die "normale" CSS-Datei.

    Also im Grunde so:

    1. [browser = msie]&& [version <=9]
    2. page.stylesheet.file = fileadmin/css/style_ie.css
    3. [ELSE]
    4. page.stylesheet.file = fileadmin/css/style.css
    5. [GLOBAL]

    Wäre das korrekt?

  • etux etux
    Jedi-Meister
    0 x
    360 Beiträge
    13 Hilfreiche Beiträge
    04. 12. 2013, 21:41

    Nein, so:
    [browser = msie]&&[version= <9]

    Selbst wenn Du den IE 5.x auch noch mitberücksichtigen willst, dürften die extra Regel für die IE < 9 überschaubar bleiben – 5 bis 20 Zeilen. Die schreibst Du Dir in einer extra Datei, die nur der IE < 9 zu sehen bekommt. Alle Browser (auch die IE < 9) bekommen die „normale“ CSS.
    Es ist auch pflegeleichter mit nur einer CSS-Datei zu arbeiten.

    1. page.stylesheet.file = fileadmin/css/style.css
    2.  
    3. [browser = msie]&&[version= <9]
    4. page.stylesheet.file = fileadmin/css/style_ie.css
    5. [global]

  • kruempi kruempi
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    05. 12. 2013, 13:46

    Danke, damit kann ich sauber arbeiten.

  • nevsred nevsred
    R2-D2
    0 x
    113 Beiträge
    0 Hilfreiche Beiträge
    22. 01. 2014, 16:12

    Ich habe im Typoscript Object nen Fehler.

    [code]Fehler und Warnungen
    2: Line 4047: Object Name String, "[browser" contains invalid character "[". Must be alphanumeric or one of: "_-\." Details anzeigen
    2: Line 4050: Object Name String, "[end]" contains invalid character "[". Must be alphanumeric or one of: "_-\." Details anzeigen
    [/code]

    bei folgender Condition:

    1. [browser = msie]&&[version= <9]
    2. page.includeJS.file7 = http://html5shiv.googlecode.com/svn/trunk/html5.js
    3. page.includeJS.file7.external = 1
    4. [end]

  • 1