2 Frames auf einer Seite ausdrucken

Marco_HD

Mitglied
Hallo

ich habe eine Seite mit 3 Frames (links, oben und mitte), möchte aber gern das link und mittlere auf einer Seite ausdrucken!

habe schon diesen code ausprobiert:

Code:
<script language="JavaScript">
function myprint() {
if (window.print) {
                parent.frameName.focus();
                parent.frameName.print();
              }
              return false;"
}
</script>
<a href="javascript:myprint()">drucken</a>

dann druckt er mir nur ein Frame!

wenn ichs so mache:

Code:
<script language="JavaScript">
function myprint() {
if (window.print) {
                parent.frameName.focus();
                parent.frameName.print();
                parent.frameName2.focus();
                parent.frameName2.print();
              }
              return false;"
}
</script>
<a href="javascript:myprint()">drucken</a>
druckt er zwar beide Frames aber auf 2 Seiten.

Gibt es nicht eine Möglichkeit 2 Frames auf einer Seite auszudrucken?!

Hab schon halb google durchsucht :( aber nicht gefunden...

Wäre super wenn da jemand was gefunden hat und weiter weis

Gruß
 
Gibt keine Möglichkeit, außer, du haust den Inhalt beider Frames kurzzeitig in einen dritten und druckst den dann aus.
 
Danke con-f-use für die Antwort! hm verdammte Frames :(

kann man denn zB.: einen 3.Frame dynamisch erzeugen? Also ohne dass es den Frame auf einer HTML Seite gibt?!

Vielleicht hast du eine Quelle wo ich mir sowas mal anschauen könnte?!

das wäre super

bin leider kein Java Profi....:rolleyes:
 
Hallo con-f-use,

ich hab jetzt mal versucht einfach ein neues Fenster per JS zu öffnen!

-->mit newWin.document.write

Jetzt müsste ich doch auch auf die Frames zugreifen können oder?!

Hab das hier mal versucht

--> newWin.document.write(parent.mainFrame.document) // (muss ich da die id oder den namen des Frames angeben?)
aber es ist ja eigentlich nicht das parent Fenster.

Hast du einen Rat wie ich auf ein Frame zugreifen kann? (Code?)
 
Du willst die beiden Frames in ein neues Fenster hauen, richtig?

Wie du genau auf die Frames zugreifest hängt davon ab, in welchem Frame das Script läuft. Da kann ihch dir ohne Frameset nicht helfen. Ich gehe mal davon aus, dass es Iframes sind. Ansonsten müsstest du eben ein Frameset statt des html-Grundgerüstes schreiben. Weiter gehe ich davon aus, dass das Script auf der Hauptseite und nicht innerhalb eines Frames ausgeführt wird.

Javascript:
var frm1 = document.getElementById('FrameId1').cloneNode(true),
    frm2 = document.getElementById('FrameId2').cloneNode(true),
    win = window.open('','Durckansicht','');
with(win.document) {
    clear();
    write('<html><head><title>Durckansicht</title></head><body></body><html>');
    close();
    getElementsByTagName('body')[0].appendChild(frm1);
    getElementsByTagName('body')[0].appendChild(frm2);
}
 
Zuletzt bearbeitet:
ahh vielen dank für die Hilfe! Werde das jetz mal ausprobieren...

so nebenbei:
das Frameset sieht so aus:
Code:
<frameset runat="server" id="objFrameSet">
		<frame name="leftFrame" id="objFrameLeft" runat="server"/>
			<frameset runat="server" id="objFrameSetMain">
				<frame name="mainFrameTop" id="objFrameMainTop" runat="server"/>
				<frame name="mainFrame" id="objFrameMain" runat="server"/>
			</frameset>
	</frameset>

und das script wird vom mainFrame aus aufgerufen.

Edit:

Also hat fast perfekt geklappt ;-)

Aber weil ich das Script vom mainFrame aus aufrufe, wird das topframe nicht im Popup angezeigt!
 
Zuletzt bearbeitet:
ahh ;-) vielen dank funktuniert perfekt!

noch eine kleine Frage:

Ich habe auf einem der Frames dieses Objekt: (das ist der Druckbutton)
Code:
<input id="printbutton" name="image" type="image" onClick="neues_fenster()" src="../gfx/druck.gif" border="0">

So jetzt hab ich ja, dass genau dieselbe Seite in einem Popup aufgeht mit den gleichen Elementen!

Könnte ich jetzt nur in dem Popup Fenster dem "printbutton" ein anderes onclick Ereigniss zuweisen?

Hab das hier mal versucht:
Code:
document.getElementById('printbutton').onclick = print();
Aber leider gehts nicht...


Der Hintergrund ist der, dass ich in dem Popup automatisch das Druckfenster öffne! mit
-->
Code:
<body onLoad="print()"></body>

Wenn ich jetzt aber den Druck abbreche, dann hab ich ja den Druckbutton von der vorherigen Seite mit der Javascript Funktion "Neues Fenster öffnen".

Es sollte jetzt wenn ich in dem Popup auf den Druckbutton drücke einfach die aktuelle Seite (also Popup) ausdrucken!

Wäre super wenn du mir da auch noch einen Tipp geben könntest ;-)
 
Also, du möchtest von deinem Hauptfenster aus, den Onlick im PopUp ändern. Genauer den onclick des Elementes mit id="printbutton" im Dokument des entsprechenden Frames des PopUp-Fensters.

Hier sollte dir schon klar sein, dass dein Versuch mit document.getElementById relativ unsinnig war, denn:
Lögischweise kannst du das Element nicht über document.getElementById erreichen. Mit eifnach nur document sprichst du das Dokument des Hauptfensters an.
Das sind aber absolute JS-Grundlagen und die solltest du dir selbst aneignen, dass dies ist ein Forum und kein Javascript-Kurs.
Wie auch immer du musst erstmal angeben welches Fenster du genau meinst. Da hast du beim Öffnen des Popups über
Javascript:
win = window.open(....)
schon eine Referenz drauf erzeugt.
Dann, falls es welche gibt, musst du spezifizieren welchen Frame (name, nicht mit id) du meinst, dann erst kannst du document.getElementById gewinnbringend einsetzten. Das ist die normale Objekthirachie in Javascript.

Dem onclick-Event musst du außerdem eine Funktion zuweisen. Mit
Javascript:
...onclick = print();
führst du aber rein technisch eine Methode aus und weist ihren Rückgabewert (in dem Fall "true" oder "false") dem onlick zu. Der onclick erwartet aber eine Funktion und keinen true/false-Wert. Das ist ein weiterer Fehler.

Wie wäre es also mit
Javascript:
win.frames['framename'].document.getElementById('Id').onlick = new Function('print()');
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück