"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Javascript: print() einer anderen Seite

Spikx 04.03.2008 - 13:35 783 11
Posts

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4260
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
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4260
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
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4260
ok, dann wirds nicht gehen. war nur so eine idee.

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
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
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
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
Avatar
Registered: Oct 2002
Location: *
Posts: 2657
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

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4260
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
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Aaah, das hört sich gut an, thx :). Mal probiern wenn's soweit is.

Lizardking

Big d00d
Avatar
Registered: Nov 2004
Location: sogined
Posts: 167
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
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz