Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Druckansicht mit JavaScript





Frage

Hoffe das mir jemand helfen kann Ich nutze JavaScript um aus einer HTML-Seite eine Druckansicht zu erstellen. Dazu öffne ich über einen Link ein Popup, welches mit <script language="javascript">document.write(window.opener.document.Originalseite.Textarea1.value)</script> den Inhalt eines Textarea (und auch andere Elemente) ausliest und einschreibt. Wenn nun aber im Textarea eingegeben ist: 1. Anfang 2. Mitte 3. Ende wird dieser Text auf der neuen (Popup-)Seite so dargestellt: 1. Anfang 2. Mitte 3. Ende Und das ist mein Problem. Wie kann ich erreichen das der Text im Popup genauso aussieht wie im Original ? Danke spaceman

Antwort 1 von rfb

wenn du in deinem JavaScript den textarea-Inhalt umwandelst mittels der
escape
-Funktion, erhältst du an jeder Zeilenumbruch-Stelle die Zeichenfolge
%0D%0A
, das brauchst du bloß mittels einer einfachen Suchen/Ersetzen-Funktion gegen
 <br>
austauschen und dann alles mittels der
unescape-
Funktion zurückverwandeln. Fertig.

Antwort 2 von spaceman

Kannst du mir das mal ein klein wenig ausführlicher erklären? So bewandert bin ich noch nicht in JavaScript, das ich das so einfach verstehe. Danke!

Antwort 3 von rfb

sersetze dein Script durch dies:

<script type="text/javascript">
var p=escape(window.opener.document.Originalseite.Textarea1.value);
var a=p.split("%0D%0A");
p=a[0];
for (var j=1;ji<a.length;j++) {
p+="<br>"+a[j];
}
document.write(unescape(p));
</script>


Antwort 4 von rfb

hoppla, ein kleiner Fehler, richtig ist
...
for (var j=1;j<a.length;j++) {

...

Antwort 5 von rfb

hm, der Firefox machts wieder mal anders, aber wenn du statt "
%0D%0A
" nur "
%0A
" einsetzt macht auch der mit.

Antwort 6 von spaceman

Erst mal vielen Dank für die Hilfe.
Hatte gestern Abend mit Hilfe von einem JavaScript-Buch selber noch mal rumprobiert und folgendes geschrieben.

<script language="javascript">
var a = (escape(window.opener.document.Originalseite.Textarea.value))
var b = a.replace(/%0D0A/g,"<br>");
document.write(unescape(b))
</script>

So hat es bei mir auch funktioniert. Habe es aber auch nur mit dem IE getestet. Probiere jetzt gleich dein Script.

Antwort 7 von rfb

Lass es bei deiner Version, die ist eleganter. Mein Vorschlag war auf Anfänger zum Nachvollziehen ausgerichtet.
Allerdings den Einwand von A5 solltest du noch berücksichtigen.
Und ersetze
language="JavaScript"
durch
type="text/javascript"
, language ist im aktuellen HTML nicht mehr zulässig.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: