Zum Inhalt springen

Browserweiche im Typoscript und Internet Explorer 11

Erstellt am 4. Dezember 2013 · 5 Antworten · letzte Antwort am 22. Januar 2014

Tags: TYPO3 4.x, Frage

kruempi ·

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

  [browser=netscape, mozilla, firefox]
  page.stylesheet = fileadmin/css/style.css
  [browser=opera, unknown]
  page.stylesheet = fileadmin/css/style.css
  [useragent=*Safari*]
  page.stylesheet = fileadmin/css/style.css
  [global]
  [browser=msie]
  page.stylesheet = fileadmin/css/style_ie.css
  [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:

  page.includeCSS.file1 = fileadmin/css/style.css 
  [browser = msie]
  page.includeCSS.file2 = fileadmin/css/style_ie.css
  [global]

bzw. in dieser Variante

  [browser = msie]
  page.stylesheet = fileadmin/css/style_ie.css
  [ELSE]
  page.stylesheet = fileadmin/css/style.css
  [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

  page.5 = TEXT
  page {
  5 {
     value (
            <!--[if IE]>
            <link rel="stylesheet" type="text/css" href="fileadmin/css/style_ie.css" media="all">
            <style type="text/css">
	    <!--
            #footer {margin-top:-119px;}
            -->
            </style>
            <![endif]-->
           )
     }
  }

aber das kann nicht die Lösung sein.

Ich bin für jede Hilfe dankbar.

Merci im voraus
Jochen

kruempi ·

Danke für die Antwort.

Ich will gar nicht jedem 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:

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

Wäre das korrekt?

etux ·

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.

page.stylesheet.file = fileadmin/css/style.css

[browser = msie]&&[version= <9]
page.stylesheet.file = fileadmin/css/style_ie.css
[global]
nevsred ·

Ich habe im Typoscript Object nen Fehler.

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

bei folgender Condition:

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