Kai Lahmann: SELFHTML, Beim Druck jeder Abschnitt auf einer eigenen Seite

Beitrag lesen

»hi

Kann man die CSS-Vorgaben mit JavaScript ändern?

es geht, aber nicht gerade zuverlässig:
document.styleSheet[0].cssRules[12].style.pageBreakBefore="always"; wäre das Die beiden Zahlen sind etwas nervig imho, da sind einfach die Style-Blöcke und die CSS-Regeln durchnummeriert.
Das klappt dann in Mozilla, MSIE5/6 [für den 4er gibt's mal wieder was eigenes] und konqueror3. Opera kann sowas grundsätzlich nicht, in konqueror2 gibt's einen Crash.

Oder man fügt eine neue CSS-Regel ein, was dann allerdings in den Browsern inkompatibel ist...

nach DOM (und für Mozilla)
document.styleSheets[0].insertRule('h2.sh2{page-break-before:always};',document.styleSheets[0].cssRules.length);

für den Windows-IE:
document.styleSheets[0].addRule('h2.sh2','page-break-before:always;'):

in allen anderen Browsern passiert gar nichtsm, konqueror3 ist mir dabei gecrasht. Man fühlt sich hier etwas in die Zeiten zurückversetzt, wo sich die Browserhersteller mit möglichst inkompatiblem Code das leben schwer machen wollten...
Mit etwas gebastel kann man also immerhin in allen Browsern außer Opera und konqueror2 überhaupt ein Ergebnis erzielen, allerdings mit einem ziemlichen code-Salat - und wenn keine Regel vorher existiert, hilft eh nur noch beten, abseits von MSIE/Windows und Mozilla ist jede Hoffnung verloren.
Hier hilft wohl nur beten, dass es in zukünftigen Browserversionen alles etwss (naja, oder erheblich) kompatibler implementiert wird, vor allem stört konqueror's Abstürzerei!

http://www.xs4all.nl/~ppk/js/changess.html hat weitere (nicht gerade motiviernde) Informationen