Hi,
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);
Leider muss ich nochmal nachfragen. Ich habs jetzt einfach ausprobiert, aber er schneidet noch immer ab :-( (und zwar sowohl IE8 als auch IE6).
Zum Debugging mache ich ein alert(stylediv.innerHTML). Dabei ist mir aufgefallen, dass der zoom Wert immer konstant auf 0.796812749003984 steht. Egal ob es eine horizontale Scrollleiste gibt oder nicht.
Kann es sein dass document.body.clientWidth nur die Pixelanzahl des tatsächlich sichbaren angibt? Angenommen es existiert eine Scrollleiste, wie erhalte ich diese Breite dann?
Und dann hab ich noch ein fundamentales Problem: Der IE8 scheint den zoom wenigstens zu interpretieren - der Ausdruck wird etwas kleiner dargestellt.
Den IE6 (obwohl die Zoomberechnung hier etwas von 0.8 rausbringt) scheint das gar nicht kümmern. Der Druck sieht nicht nach einem gezoomten aus und auch von einer Tabelle mit 3 Spalten wird ab der 1.5en Spalte einfach alles abgeschnitten.
Ich werd' immer grantiger und verzweifelter. Wie kann man nur sowas programmieren?! Das is' ja echt kriminell :(
LG
Peter