Holger Ahlrichs: Problem bei Auruf von druckbare Seite

Hallo,
ich habe erzeuge eine "druckbare Seite auf folgedem Wege:

<form name="print">
<input type=hidden name=printtext value="
<!-- Start Inhalt der Druckbare Seite -->
<html>
..
..
</html>
<!-- Ende der Druckbaren Seite -->
">
</form>

Aufgerufen wird das ganze über folgende Funktion:

newwin = null;
function printtext() {
  text = document.print.printtext.value;
  newwin = window.open('','orderconfirmation')
  with(newwin.document) {
    writeln(text);
    close();
}
newwin.focus();
}

Das Problem was ich hierbei habe ist folgendes:
Bei dem Wert für das Inputfield "printtext" verwende ich nur Hochkommas und keine Anführungszeichen.
Dadurch das ich die Druckbare Seite (quasi der Wert für das Inputfield) dyn. gestalte, kommen auch Datenbankinhalte mit Anführungszeichen auf dem Quelltext der Druckbaren Seite vor . Diese sorgen dafür, das die Seite nicht mehr korrekt angezeigt werden.

Wie kann ich dieses Problem umgehen ?

  1. Folgende Änderungen:

    newwin = null;
    function printtext() {
      text = document.print.printtext.value;

    text = text.replace(/"/, "\"");

    newwin = window.open('','orderconfirmation')
      with(newwin.document) {
        writeln(text);
        close();
    }
    newwin.focus();
    }

    Hoffe hab mich in den Bezeichnungen net vertan :o)

    Gruss
    Stefan

    1. Hi Stefan,
      erstma vielen Dank für die schnelle Antwort.
      Die Idee mit "replace" ist aber super.
      Ich hab es mal probiert.
      Klappt leider noch nicht - müsste aber eigentlich.
      Er ersetzt es einfach noch nicht. Ist auch ein dyn Wert den er ersetzt.
      Ich probier halt noch ein wenig - wird schon klappen.

      Donk und Gruss
      Holger

      Folgende Änderungen:

      newwin = null;
      function printtext() {
        text = document.print.printtext.value;
          text = text.replace(/"/, "\"");
        newwin = window.open('','orderconfirmation')
        with(newwin.document) {
          writeln(text);
          close();
      }
      newwin.focus();
      }

      Hoffe hab mich in den Bezeichnungen net vertan :o)

      Gruss
      Stefan

    2. Ahh ich weiss wieso es noch nicht funzt.
      das replace gilt ja für die seite die dann in einem neuen Fenster angezeigt wird (Druckbare Seite). Das Problem tritt ja aber schon auf dem Eltern Fenster auf - halt die Ursprungsseite.

      mhh - wäre so schön gewesen :)
      muss ich mal weiterforschen

      Donk und Gruss
      Holger

      text = document.print.printtext.value;
          text = text.replace(/"/, "\"");

    3. Nochmal,
      hab jetzt soweit alles hinbekommen. War halt so das meine Sysbase DB (unter ePages Shopsystem)  die dyn. Werte schon mit " auf dem Elternfenster ausgegeben hat. jetzt funktioniert es auch. Eine kleine Frage bleibt noch:

      Wie kann ich nach ' suchen und das durch " ersetzen

      text = text.replace(/'/, """);

      funzt net und ich krich das mit "Achtung Sonderzeichen" noch nicht so auf die Reihe ;(

      Donk und Gruß
      Holger