4. Februar 200323 j Hallo, gibt es eine Möglichkeit Javascript direkt aufzurufen, also ohne einen EventHandler wie onClick o.ä. Mein Problem: Ich erstelle mit PHP eine Tabelle und der Druck soll anders aussehen (Farben und Seitenumbruch...). Dazu hab ich einen Button "Printer friendly" (Name wird noch geändert), damit erzeuge ich die Tabelle nochmal und will sie dann gleich drucken (window.print()) und dann wieder zurück (self.location.href = ...). Weiss jemand wie ich es hinbekomme, das die Javascript funktionen einfach so ausgeführt werden? Oder reicht dazu der OnLoad Handler? Aber ich denke der würde doch ausgeführt, bevor der Rest angezeigt ist...
4. Februar 200323 j Eigentlich müsste auch die OnLoad variante funtionieren. Danach könntest Du ja mit <META HTTP-EQUIV="Refresh" CONTENT="5; URL=frame-noflash.html"> zurück auf deine Ausgangsseite weiterleiten. oder du baust einen Timer in deine OnLoad funktion ein, wenn die Zeit zum Drucken nicht ausreicht: timer=setTimeout("self.location.href='neuedatei.htm'", 5000); Hoffe, ich konnte helfen MFG - Oneside -
4. Februar 200323 j Ich finde das ist nicht gerade "sauber"... dann werd ich wohl lieber einen Button "Drucken" machen, oder aber übers Menü Drucken lassen...
4. Februar 200323 j hmm was ist denn, wenn du das ganze in einem Fenster aufgehen lässt? Und in die neue Seite dann ein OnLoad einbaust? Das onLoad lässt du einen Funktion aufrufen. z.B. function drucken() { window.print(); window.close(); } Hmm ich sollte genauer lesen. Ich meine das onload wird erst ausgeführt, wenn die Seite komplett geladen ist oder?
4. Februar 200323 j OnLoad wird doch beim Laden gestartet, also u.U. noch bevor das Dokument fertig geladen ist, oder nicht? Da dafür die Daten neu aus der DB abgefragt werden müssen, könnte es passieren, das der Druck zu früh startet. Selbst wenn die Chance dafür nicht alzu gross sein mag, auf sowas lasse ich mich ungern ein...
4. Februar 200323 j Also, ich habe mich nochmal eingelesen: Der OnLoad Handler kann eine Funktion genau dann ausführen, wenn das Laden eines Dokuments abgeschlossen ist. Also kannst du Dir das ganze Timer-Zeug sparen und hast eine saubere Lösung MFG - Oneside -
5. Februar 200323 j Kannst ja dann vielleicht mal posten, ob es funktioniert hat. Würde mich auch mal interessieren MFG - Oneside -
6. Februar 200323 j Laut SelfHTML wird onLoad ausgeführt, "wenn eine HTML-Datei geladen wird". Aber ich weiß gar nicht, wo das Problem ist. Setz doch einfach unter Deine Druckversion noch <script> window.print(); </script> PHP erzeugt dann die Druckversion und führt anschließend das JavaScript aus.
6. Februar 200323 j Das ist jetzt aber nicht das selbe. Wenn er die Anweisung einfach ins Script setzt, wird sie beim übertragen der Seite geladen, aber vor dem Übertragen der Bilder. Wenn er es nach dem Download machen will, muss schon eine Funktion im Onload her. Ist aber eigentlich eh schnurz, da der Browser das Dokument nur druckt, wenn es komplett ist. Zumindest war das bei mir beim IE immer so.
6. Februar 200323 j Ich gehe davon aus, daß es auf jeder Seite die Möglichkeit gibt, einen Button anzuklicken, über den eine druckversion.php aufgerufen wird. Wenn man der Meinung ist, daß es sich lohnt, die Seite auszudrucken, sind die Bilder bereits übertragen. Und in der druckversion.php steht dann halt als letztes das Javascript drin. Apropos Javascript. Damit geht es übrigens auch (zumindest mit dem Internet Explorer): <html> <head> <script> function printversion() { a = document.all.inhalt.innerHTML; b = window.open('about:blank'); b.document.open(); // Hier kann man über b.document.write beispielsweise noch CSS einbinden b.document.write(a); b.document.close(); b.print(); b.close(); } </script> </head> <body> Das hier wird nicht gedruckt. <div id="inhalt"> Das hier wird gedruckt. </div> <a href="javascript:printversion();">Inhalt drucken</a> </body> </html>
6. Februar 200323 j Was hast Du denn für ein Self-HTML ? Laut Self-HTML 8.0 wird OnLoad erst ausgeführt, wenn das Dokument geladen WURDE! Hier nachzulesen: http://selfhtml.teamone.de/html/referenz/attribute.htm#body MFG - Oneside -
6. Februar 200323 j Oh, da trifft SelfHTML 8.0 ja zwei verschiedene Aussagen zu ein und demselben Punkt: "wenn die Datei geladen ist..." und "wenn eine HTML-Datei geladen wird" Übrigens sollte das mit dem Smily im Code in meinem letzten Posting javascript:printversion() heißen, habe nur vergessen, diese verdammten Mistdinger abzuschalten.
6. Februar 200323 j Also ich habe auch noch im Buch 'javascript Praxisbuch' nachgelesen. Hier wird auch gesagt, dass die Funktion erst nach dem vollständigen Laden ausgeführt wird. MFG - Oneside -
6. Februar 200323 j Hallo, bevor ich hier nachgefragt habe habe ich es mit einem <script> window.Print(); </script> Probiert, es hat aber nicht funktioniert, daher ja dann die Frage. Also ich mache es jetzt mit dem OnLoad, in meiner SelfHTML Version (offline, und u.U. schon etwas älter...) hab ich auch nur "beim Laden einer Seite" gefunden. Das mit dem OnLoad funktioniert. Je nach verwendetem Browser wird die Seite erst angezeigt, dann wartet man ne weile, und dann kommt der Druck-Dialog (IE), oder man klickt auf "Drucken", dann kommt der Dialog, und am Ende sieht man kurz die Seite bevor der location.href wirkt (Mozilla, besser Phoenix). Der Druck funktioniert aber bei allen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.