Christoph: Drucken aus Frame.

Beitrag lesen

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

--
Ich bin ein spezialisz!
(Zitat von VENGA JO)