• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

brauche Hilfe bei Druckskript mit JS

  • Ersteller Ersteller the_sacrificer
  • Erstellt am Erstellt am
T

the_sacrificer

Gast
Servus,

habe folgendes geschrieben:

index.html:
Code:
<html>
	<head>
	
<script language="JavaScript">
<!--

function drucken()
{
content=document.getElementById("drucken").innerHTML;

druckfenster=open("drucken.html");
druckfenster.document.write("<title>test</title>");
druckfenster.document.write("content");
druckfenster.focus();
druckfenster.print();

}
// -->
</script>
	
	</head>
	<body>
	
	123
	
	<div id="drucken">zum ausdrucken</div>
		
	456
	
	<a href="#" onclick="drucken();">drucken</a>
	
	</body>
</html>

und eine leere Datei "drucken.html" im gleichen Verzeichnis.

Passieren soll:
Es öffnet sich ein neues Fenster mit dem Text im <div> als content, der dann auch gleich gedruckt werden soll.

Nun öffnet sich auch das Fenster, aber läd unendlich lang obwohl eigentlich alles da ist. Wenn ich das Fenster neu lade, dann kommt sofort der erwünschte Druckaufruf.

Nehme ich Bilder mit ins <div>, dann werden die auch korrekt angezeigt, nur in der Ladezeile des Browsers steht dann, dass er noch an den Bildern arbeitet.

Woran könnte es denn liegen? Habs auf verschiedenen Rechner, Servern, Browser (IE6, Feuerfuchs) getestet, aber immer das gleiche Ergebnis.

:confused: :confused: :confused:

Als Alternative hatte ich mir nochmal einen extra Button in der neuen Seite gedacht, mit dem man den Druck manuell starten kann, aber solange die Seite läd, funktioniert der Button nicht, muss also auch erst neu laden.

Gruß
 
the_sacrificer am 28.07.2006 09:59 schrieb:
Code:
druckfenster.document.write("content");

So wie ich das sehe, sollten da erstmal die Quotes weg. Ausserdem, waere es nicht einfacher, du machst ein extra Stylesheet fuer den Druck, in dem du die unnoetigen Elemente ausblendest?
 
marky68 am 28.07.2006 15:07 schrieb:
So wie ich das sehe, sollten da erstmal die Quotes weg. Ausserdem, waere es nicht einfacher, du machst ein extra Stylesheet fuer den Druck, in dem du die unnoetigen Elemente ausblendest?
mit oder ohne quotes ist einerlei

was sind deiner Meinung nach unnötige Elemente? Das ist eine Zeile Text ohne jegliche Formattierung. Falls du toolbar etc meinst macht das ebenfalls keinen Unterschied.
 
the_sacrificer am 28.07.2006 19:44 schrieb:
mit oder ohne quotes ist einerlei

mit quotes -> string
ohne -> variable


was sind deiner Meinung nach unnötige Elemente? Das ist eine Zeile Text ohne jegliche Formattierung. Falls du toolbar etc meinst macht das ebenfalls keinen Unterschied.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
 <head>
  <title>New Document</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <style type='text/css' media='screen'>
   div {
    font-family:Arial,Helvetica,sans-serif;
   }
   body {
    background-color:#CCCCCC;
   }
  </style>
  <style type='text/css' media='print'>
   div {
    display:none;
   }
   div#drucken {
    display:block;
    font-family:Verdana;
   }
   body {
    background-color:#FFFFFF;
   }
  </style>
 </head>
 <body>
  <div>
  123
  </div>
  <div id="drucken">zum ausdrucken</div>
  <div>
  456<br />
  <a href="#" onclick="window.print();">drucken</a>
  </div>
  </body>
</html>

funktioniert sogar ohne javascript
 
ah, das mit den quotes ist ja wie bei C, hätte mir auch einfallen können.

das klappt ja wunderbar - mit diesem Beispiel, aber sobald ich es in meine Seite einbaue wird nur eine leere Seite gedruckt, oder nicht das was ich will >:-|
Dabei hab ich alles exakt so übernommen...

gibt es vllt bekannte Probleme, wenn man das <div> um ein <? ?> legt?
 
da marky68 grade leider beschäftigt ist frag ich hiermit nochmal in die Runde:

hat jemand irgend ne Ahnung, warum das Ladeproblem bei der JS-Variante auftritt?

wer die css-Variante bevorzugt: warum druckt er mir einmal ne leere Seite, warum manchmal alles (mit identischem code wie von marky, nur andere Textinhalte)?

oder weiß jemand noch ne Alternative zu JS/css?


Gruß
 
hi,
hab mir das grade schnell mal angesehen, das problem liegt darin, wie du die tables und div verschachtelt hast - du beginnst das div ausserhalb der tabelle und schliesst es innerhalb. das geht nicht. du kannst es so machen, dass du beim drucken alle td's ausblendest:
td { display:none; }
und in einer td den inhalt stehen hast, der gedruckt werden soll - ganz so wie mit dem div.
td#drucken { display:block; }
die kannst du css-maessig natuerlich noch weiter formatieren
gruss,
marky :)

PS: hab dir meine version per omail geschickt ;)
 
Zurück