Javascript: print() einer anderen Seite
Spikx 04.03.2008 - 13:35 878 11
Spikx
My Little Pwny
|
Auf einer x-beliebigen webpage kann man ja bspw. über <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
Here to stay
|
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
My Little Pwny
|
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. 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
Here to stay
|
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
My Little Pwny
|
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
Here to stay
|
ok, dann wirds nicht gehen. war nur so eine idee.
|
fatmike182
Agnotologe
|
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)
Bearbeitet von fatmike182 am 04.03.2008, 16:10
|
Spikx
My Little Pwny
|
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
Dr. Doom
|
|
kleinerChemiker
Here to stay
|
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
My Little Pwny
|
Aaah, das hört sich gut an, thx . Mal probiern wenn's soweit is.
|
Lizardking
Big d00d
|
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. -> guckstumfg
|