Javascript: print() einer anderen Seite

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/javascript_print_einer_anderen_seite_192399/page_1 - zur Vollversion wechseln!


Spikx schrieb am 04.03.2008 um 13:35

Auf einer x-beliebigen webpage kann man ja bspw. über

Code: PHP
<a href="javascript:window.print()">Click to Print This Page</a>
die aktuelle Seite ausdrucken lassen (bzw. natürlich nur das Druckfenster zum ausdrucken der aktuellen Seite anzeigen lassen).

Aber wäre es auch technisch möglich über einen Link eine ganze andere Seite ausdrucken zu lassen, ohne dass diese Seite (eine druckerfreundliche Seite eines bestimmten Newsartikels bspw.) extra dem User nochmal vorher angezeigt wird?

Könnte man bspw. über einen Link zuerst ein neues Fenster über Javascript öffnen zu lassen, wo eben der Inhalt zum ausdrucken angezeigt wird, dann dort gleich window.print() ausführen... aber das Fenster irgendwie.. äh.. verstecken? ;)


kleinerChemiker schrieb am 04.03.2008 um 14:09

du könntest das fenster außerhalb des bildschirms anzeigen lassen und es auch nach dem print wieder schließen.

oder vielleicht einen nicht sichtbaren iframe, wo die printvariante drin ist, und nur den ausdrucken.

oder einfach ein eigenes stylesheet für die druckversion. dann brauchst du überhaupt keine andere seite aufrufen.


Spikx schrieb am 04.03.2008 um 14:13

Zitat von kleinerChemiker
oder vielleicht einen nicht sichtbaren iframe, wo die printvariante drin ist, und nur den ausdrucken.
Stimmt, hört sich nach eine guten Möglichkeit an.

Zitat von kleinerChemiker
oder einfach ein eigenes stylesheet für die druckversion. dann brauchst du überhaupt keine andere seite aufrufen.
Naja, der Link würde sich dann auf einer Seite befinden, wo mehrere Artikel sind und über den Link sollte dann eben nur ein bestimmter Artikel gedruckt werden.


Aber evt. werde ich es dabei belassen, dass ein neues Javascript Fenster geöffnet wird, wo man die Druckversion nochmal sehen kann und dann den Druck nochmal bestätigen, damit der User doch etwas mehr Kontrolle hat.


kleinerChemiker schrieb am 04.03.2008 um 14:16

ka obs funzt, aber eine idee.
der artikel zum drucken wird ja wohl in irgend einem container sein. wenn man dann statt window.print() eben nur diesen container druckt so in der art wie container.print()

kenne mich js nicht so aus, aber könnte mir vorstellen, daß so was klappen könnte.


Spikx schrieb am 04.03.2008 um 15:44

print() ist eine Funktion des Objekts window, denke also nicht, dass es mit beliebigen Elementen auch so funktioniert. Aber ich kanns ja mal probiern ;)


kleinerChemiker schrieb am 04.03.2008 um 16:00

ok, dann wirds nicht gehen. war nur so eine idee.


fatmike182 schrieb am 04.03.2008 um 16:07

gehts um verstecken oder nicht anzeigen?
Vllt könnte man einen css-Hack mit der z-position bauen oder so?

hilft das? Ich glaub sowas meinst du, nm?
http://www.thescripts.com/forum/thread745415.html
(wüsst aber selbst nicht, wie der Lösungsvorschlag umzusetzen ist)


Spikx schrieb am 04.03.2008 um 16:11

Naja, das wäre ja Vorschlag #3 von Chemiker. Aber da auf der aktuellen Seite dann ja mehr da is, als gedruckt werden soll, stell ich mir das eher schwierig vor, bzw. wüsste ich jetzt nicht, wie ich da auf einfache Weise den zu druckenden Content isolieren sollte.


murcielago schrieb am 04.03.2008 um 16:13

Zitat von Spikx
bzw. wüsste ich jetzt nicht, wie ich da auf einfache Weise den zu druckenden Content isolieren sollte.

css! http://www.alistapart.com/stories/goingtoprint/


kleinerChemiker schrieb am 04.03.2008 um 16:14

da kommts mir schon wieder ;)

jeder container mit dem textblock bekommt eine id und classe. im css für print ist die classe versteckt. dann eine funktion, die für die gewählte id den block sichtbar macht und dann erst druckt.


Spikx schrieb am 04.03.2008 um 16:27

Aaah, das hört sich gut an, thx :). Mal probiern wenn's soweit is.


Lizardking schrieb am 05.03.2008 um 09:51

wenns nur darum geht, der funktion eine druckerfreundliche version der angezeigten seite zu übergeben, könntest du die media-property (<style media="screen"> bzw. <style media="print">;) verwenden.
sprich 2 verschiedene stylesheets einbinden. elemente die nicht gedruckt werden sollen dann einfach auf hidden setzen. ->guckstu

mfg




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026