Drucken aus Frame.
Stefan
- javascript
Tut mir leid das ich nochmal ein neues Thema anfange, das hier ist aber wirklich wichtig.
Wünsche nochmal einen guten Tag.
Ich habe da ein Prob und hoffe auf eure Hilfe.
Ich habe ein Frameset. Links mitte rechts.
Wenn ich mich jetzt in der mitte.htm befinde möchte ich auf einen klick ein dokument ausdrucken was nicht zu sehen ist. (Öffne ich die mitte.htm separat wird die datei(nicht die mitte.htm) korrekt ausgedruckt!) Es wird nämlich immer der frame ausgedruckt den ich aber nicht haben will.
Habe im head stehen
<link rel=alternate media=print href="066.htm">
und im body
<a href="javascript:self.parent.mitte.print();">drucken</a>
funzt aber net.
Also hoffe auf Hilfe...
Moin, ich kann dir mal ein Script geben, das hatte ich vor ein paar Jahren auf einer Seite mal eingesetzt die noch auf Frames basierte.
Ich hatte halt links nen Frame und in der Mitte. Und von links aus steuerte ich das Frame an um das in der Mitte zu drucken!
Ging wunderbar:
<SCRIPT LANGUAGE="JavaScript">
<!--
var da = (document.all) ? 1 : 0;
var pr = (window.print) ? 1 : 0;
var mac = (navigator.userAgent.indexOf("Mac") != -1);
function printPage(frame, arg) {
if (frame == window) {
printThis();
} else {
link = arg; // a global variable
printFrame(frame);
}
return false;
}
function printThis() {
if (pr) { // NS4, IE5
window.print();
} else if (da && !mac) { // IE4 (Windows)
vbPrintPage();
} else { // other browsers
alert("Achtung, Ihr Browser unterstützt diese Funktion leider nicht. Mögliche Ursache ist: Ihr Browser ist leider zu alt!");
}
}
function printFrame(frame) {
if (pr && da) { // IE5
frame.focus();
window.print();
link.focus();
} else if (pr) { // NS4
frame.print();
} else if (da && !mac) { // IE4 (Windows)
frame.focus();
setTimeout("vbPrintPage(); link.focus();", 100);
} else { // other browsers
alert("Achtung, Ihr Browser unterstützt diese Funktion leider nicht. Mögliche Ursache ist: Ihr Browser ist leider zu alt!");
}
}
if (da && !pr && !mac) with (document) {
writeln('<OBJECT ID="WB" WIDTH="0" HEIGHT="0" CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>');
writeln('<' + 'SCRIPT LANGUAGE="VBScript">');
writeln('Sub window_onunload');
writeln(' On Error Resume Next');
writeln(' Set WB = nothing');
writeln('End Sub');
writeln('Sub vbPrintPage');
writeln(' OLECMDID_PRINT = 6');
writeln(' OLECMDEXECOPT_DONTPROMPTUSER = 2');
writeln(' OLECMDEXECOPT_PROMPTUSER = 1');
writeln(' On Error Resume Next');
writeln(' WB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER');
writeln('End Sub');
writeln('<' + '/SCRIPT>');
}
// -->
</SCRIPT>
Und der Link dazu wäre dann:
<a href="#" onClick="return printPage(parent.mittlererFrame, this)">Druck mich</a>
Das ist doch ganz verständlich so oder? Musst dir halt anpassen...
Gruß Christoph
Danke erstmal fürs beantworten.
Braucht man wirklich so ein langes script?
Es wird ja die richtige externe datei gedruckt wenn ich die mitte.htm alleine ohne frameset öffne.
Nur wenn die mitte.htm sich im frameset befindet kann ich dann nicht mehr die externe Datei drucken!
MFG Stefan
Danke erstmal fürs beantworten.
bitte
Braucht man wirklich so ein langes script?
ähm ja weiss nicht, damals schon ;)
Es wird ja die richtige externe datei gedruckt wenn ich die mitte.htm alleine ohne frameset öffne.
Tjahaa so einfach mit Frames ist das ja nicht! Ohne Frames kann ich auch supa einfach drucken aber aus einem anderen Frame heraus einen anderen Frame drucken das geht halt nur so. Das Script geht, probiers aus.
MFG Stefan
Tschaui Christoph