Erst einmal vielen Dank für die Bereitstellung des Beispiels.
Bei mir gab es auch Probleme mit dem Laden des Druckbereichs in "druckmaske.html". Es erschien immer der Fehler, dass das Objekt nicht bekannt sei. Dieses Problem trat immer dann auf wenn ich auf meinem Webserver getestet habe. Bei lokalen Tests (ohne Webserver) trat das Problem nie auf. Beim Debuggen habe ich die Variablen im JavaScript ausgegeben (mit alert()) und dabei festgestellt, dass es plötzlich funktionierte!?
Abhilfe leistet bei mir der Einbau einer kleinen Wartezeit bevor die Variable alterInhalt in "druckmaske.html" eingebunden wird. Hierzu kann man eine kleine Funktion schreiben (siehe unten).
Hoffe es hilft! Würde mich jedenfalls freuen.
Bye bye
Tobias
// Code
function Druck() {
var newWin = window.open('druckmaske.html','Druckmaske','toolbar=no,location=no,directories=no,status=no,menubar= no,scrollbars=yes,resizable=no,copyhistory=no,width=680');
var alterInhalt = document.getElementById("Druckbereich").innerHTML;
function wait(prmSec)
{
prmSec *= 1000;
var eDate = null;
var eMsec = 0;
var sDate = new Date();
var sMsec = sDate.getTime();
do {
eDate = new Date();
eMsec = eDate.getTime();
} while ((eMsec-sMsec)<prmSec);
}
Einen Kommentar schreiben:
antwortet
Ne sorry mit document.write()
funzt es auch nicht.
Möchte gerne eine JS Funktion und keine
CSS Möglichkeit.
Einen Kommentar schreiben:
antwortet
zurück zum thread...
Versuchs mal mit document.write() statt innerHTML,
-> da Du eh die elementaren Elemente onthefly erstellst, kannst Du doch auch die komplette Seite erstellen lassen.
Original geschrieben von xmedia2000 Ja, sorry, hatte ich erst danach gemerkt.
Zurück zum Thema.
Bevor ihr zurück zum Thema kommt, möchte ich dich noch auf den edit/delete Link hinweisen, mit dem du deinen Post auch nachträglich noch ändern kannst.
Einen Kommentar schreiben:
antwortet
Ja, sorry, hatte ich erst danach gemerkt.
Zurück zum Thema.
Ist jemandem ein anderes Script bekannt, mit
dem ich eine Druckversion erstellen kann?
Einen Kommentar schreiben:
antwortet
Hat jemand von Euch das Problem von pwolf gelöst?
Würde dieses Script gerne für meine Seite benutzen.
bitte zitiere keine kompletten texte, wenn du dich in deiner antwort gar nicht auf einzelne passagen beziehst.
Einen Kommentar schreiben:
antwortet
Hat jemand von Euch das Problem von pwolf gelöst?
Würde dieses Script gerne für meine Seite benutzen.
mich plagt ein Problem mit JavaScript, bzw. der innerHTML-Funktion.
Folgende Problemstellung:
Ich möchte aus einer üblichen Standard-HTML-Datei nur bestimmte Bereiche für den Ausdruck bestimmen.
Also habe ich über die id's diese Bereiche festgelegt und eine JS-Funktion geschrieben, welche mir bei Klick auf diese den Bereich aus dem Hauptdokument in ein neu aufgerufenes Fenster übergibt und darstellen soll.
Nur LEIDER wird das neu aufgerufene Fenster mal korrekt mit Inhalt dargestellt und manchmal aber nur LEER geöffnet. Ich habe bislang keine Logik/Systematik dafür gefunden. Das das ohnehin nur im IE funktioniert weiß ich ja. Da es da aber nur ab und zu funktioniert, treibt mich das noch um den Verstand!
Sowohl das Hauptdokument, als auch die leere Seite (in die der Text übergeben werden soll) und die JS-Funktion welche bei Klick ausgeführt werden soll (aus dem Hauptdokument), habe ich anbei im Quelltext zusammengestellt.
Wenn jemand helfen kann, 1001 Danke, ich revanchiere mich gern.
Dies ist die Hauptdatei, aus welcher der Inhalt in die neue, leere HTML-Datei (siehe unten, druckmaske.html) übergeben werden soll. Durch Klick auf die Funktion "Druck" soll der Inhalt der ID "Druckbereich" in die unten aufgeführte Datei (druckmaske.html) übergeben werden. Die JavaScript-Funktion für "Druck" ist unten auch abgebildet.
impressum.html :
<html>
<head>
<title></title>
<script language="JavaScript" src="main.js" type="text/javascript"></script>
</head>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<table border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
<td valign="top" colspan="2" width="576" id="Druckbereich">
<!-- Content Anfang -->
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
Dieser Text <b>soll</b> übergeben werden.
</td>
</tr>
</table>
<!-- Content Ende -->
</td>
</tr>
</table>
Dieser Text darf <b>nicht</b> übergeben werden.
<p></p>
<a href="javascriptruck()">Seite drucken</a>
<p></p>
Problem: Mal klappts und mal ist die neu aufgerufene Seite einfach leer...
</body>
</html>
Hier die leere HTML-Datei, welche durch unten genannte JavaSript-Funtion geöffnet wird und den Inhalt aus der oben genannten Hauptdatei wiedergeben soll. (siehe id "neueUeberschrift"...)
Hier die JavaScript-Funktion, welche ich in eine externe Datei ausgelagert habe (main.js). Bei Klick auf einen Link zum Druck aus der Hauptdatei, wird diese ausgeführt.
main.js :
function Druck()
{
var newWin = window.open('druckmaske.html','Druckmaske', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no, resizable=no,copyhistory=no,width=635');
var alterInhalt = document.getElementById("Druckbereich").innerHTML;
newWin.document.getElementById("neuerInhalt").innerHTML = alterInhalt;
newWin.print();
newWin.setTimeout("self.close()",1000);
}
Einen Kommentar schreiben: