Peter Mairhofer: !$"§%@@!%&/ Internet Explorer 6!!

Beitrag lesen

Hi,

Das kann Dir leider keiner genau sagen, deswegen ja auch der Alternativvorschlag mit dem PDF.

Die wichtigsten Tabellen wurden auf diese Art & Weise bereits konvertiert. Aber die Datenbank besteht halt als über 20000 Dokumenten mit vielen Hunderten Tabellen und Bildern. Da den Überblick zu bewahren ist halt schwierig :/

window.onload = function(o) { return function() {

if (o) { o(); }
   if (!document.all || window.XMLHttpRequest) { return; // IE6 only }
   var stylediv = document.createElement('div');
   stylediv.innerHTML = '<div>IE...</div><style type="text/css">@media print { zoom: '+(800/(document.documentElement.clientWidth||800))+'; }</style>';
   document.getElementsByTagName('head')[0].appendChild(stylediv.getElementsByTagName('style')[0]);
}}(window.onload);

  
Juhuu, cool, das sieht toll aus :-) Ich erlaube mir ein paar Fragen dazu:  
  
1\.) document.all kann nur der IE?  
2\.) Wieso nicht navigator.appVersion o.ä.?  
3\.) Kann ichs nicht einfacher machen, indem ich einfach dem \*body\* Element die von dir genannte style Eigenschaft zuweise? Also so:  
  
~~~javascript
  
...  
if (o) { o(); }  
if (!document.all || window.XMLHttpRequest) { return; // IE6 only }  
document.getElementsByTagName('body')[0].style.zoom = (800/(document.documentElement.clientWidth||800));  

4.) Wieso erstellst du dynamisch einen div? In diesem div sollte ja eigentlich der Inhalt der Seite (siehe (2)) stehen - oder?

» dass Du nicht im Quirks-Mode bist (ansonsten bitte document.body.clientWidth verwenden und zum Schämen in die Ecke stellen).

Ja, ich schäme mich mal. In die Ecke stell' ich mich aber erst wenn du mir sagst was das Problem ist, wenn ich in meinem Fall (=Daten die definitiv nur im IE Control angezeigt werden) den Quirks Modus verwende.

Ich möchte dass die Anwendung so gut wie möglich abwärtskompatibel ist - also wenns geht auch noch unter IE4 darstellt.

Und: Quirks habe ich ja nur wenn ich keine DTD verwende oder? siehe meine nächste Frage :)

Traurige Wahrheit: der IE ignoriert den Inhalt einer DTD komplett, solange die Doctype-Definition nur vorhanden und nicht mit einer vorangestellten XML-Deklaration versehen ist.

Aber XML Deklaration brauch ich doch nur wenn ich XHTML verwende?! Das versteh' ich jetzt eigentlich nichts ganz.

Meine Frage bleibt aber: Was ist für meinen Fall am besten? Eine DTD verwenden? Wenn ja, welche?

Wenn ein IE4, IE5 eine DTD Angabe bekommt dann ignoriert er sie ja ohnehin, aber ein IE6/IE7/IE8 verhält sich dann eben nicht mehr gleich wie seine Vorgänger oder? --> Also nichts = Quirks...

» Damit orientiert sich die Darstellung immer an der Style-Angabe.

Danke!

Wenn Du sicher gehen willst, dass die margin-Angabe übernommen ist, gebe ihr ein !important hinter dem Attributwert mit.

Danke auch das geht!

Vielen Dank! Eigentlich hast du mir schon mal sehr weitergeholfen. Auf den ersten Blick scheint das schon mal zu funktionieren, die width:-Eigenschaft der Tabellen und Bilder mit 90% !important zu überschreiben...

LG
Peter