innerHTML + Netscape
Kerim
- dhtml
0 Joachim0 Kerim
0 Sven Rautenberg
Hab folgendes Problem:
ích möchte nur den Teil ausgedruckt haben der im Tbody-Tag steht
Lösungsidee:
mit innerHTML hole ich mir den Text in ne Variable und die lass ich in ein neues Fenster schreiben. Das neue Fenster lass ich dann ausdrucken und das Fenster schliesst sich wieder.
Wo ich Hilfe brauche:
beim nachfolgenden Script funktioniert der ausdruck nur beim IE, jedoch schliesst das neue Fenster "win" sich nicht selbstständig. Bei NS kommt ne Fehlermeldung
function parseTbody()
{
if(document.layers) /* Abfrage auf Netscape 4 */
var Text= document.getElementById('tbody').innerHTML;
win=window.open();
win.document.writeln(Text);
win.self.print();
if(document.all) /* Abfrage auf MSIE 4 */
{
var Text=document.all.tbody.innerHTML;
win=window.open();
win.document.writeln(Text);
self.focus();
var OLECMDID_PRINT = 6;
var OLECMDEXECOPT_DONTPROMPTUSER = 2;
var OLECMDEXECOPT_PROMPTUSER = 1;
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
win.document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
win.WebBrowser1. ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER
);
win.WebBrowser1.outerHTML = ''
win.document.close();
}
}
</script>
tbody ist die Id, die wie folgt deklariert habe im Tbody-Tag <tbody id="tbody" >
Wer kann helfen und tut es auch?
hi,
if(document.layers) /* Abfrage auf Netscape 4 */
var Text= document.getElementById('tbody').innerHTML;
warum glaubst Du, wird auf document.layers getestet? Weil NC 4x document.getElementById nicht kennt.
Wer kann helfen und tut es auch?
keiner. NC 4x kennt innerHtml ebenfalls nicht. Text eines HTML-Elementes auszulesen geht afaik gar nicht. NC 4x is halt ein Dinosaurier ;-)
Gruesse Joachim
Hm, auch mit nem neuerem NS habe ich ständig Fehlermeldungen ... kennst du ne Möglichkeit es wenigstens mit neueren NS ausdrucken zu können?
Moin!
Hab folgendes Problem:
ích möchte nur den Teil ausgedruckt haben der im Tbody-Tag steht
Dann nimm CSS und ein passendes Druckstylesheet, in dem alles, was außerhalb des <tbody> steht, mit display:none; unterdrückt wird. Kann durchaus zu etwas Fitzelarbeit ausarten, weil du bei ungünstiger Schachtelung deiner Elemente nicht einfach <body> ausblenden kannst, um das darin enthaltene <tbody> mit display:block; wieder einzublenden, sondern du alle parallelen Elemente (z.B. <thead>) ausblenden mußt - mit einer entsprechenden Liste ist das aber eigentlich kein großes Problem.
Dieses Stylesheet bindest du mit <link media="print" ...> ein.
Netscape 4 versteht keine Druckstylesheets, aber der wird auch mit Javascript unmöglich zur Mitarbeit zu überreden sein.
- Sven Rautenberg