Jörk Behrends: Perl-HTML-JavaScript-HTML

Beitrag lesen

Hallo!

Danke Jörk (und andere)!

gern geschehen ...

Ich werde also in Zukunft mehr auf maskieren aufpassen,

Meisten ist es sogar das Beste, sich hier die Arbeit abnehmen zu lassen - per

quotemeta()

und (schon ausprobiert) die print <<"ETWAS"; mehr benutzen. Ist eine feine Sache. Und jemand sagte das es nicht in Perl-Dokumentation steht: Stimmt nicht - habe es in der Kamel-Bibel gefunden (im Index nur nach "<<" suchen).

Richtig! Wie ich schon schrieb steht das in der alten und in der neuen unter 'here-documents'

Um noch mal auf das ursprüngliche Problem zu kommen: Eine Kombination von here-documents und automatischen 'quotes' wäre hier wohl das pfiffigste. Zumal man bei Änderungen des HTML-Textes sich nicht jedesmal erneut mit den Problemen rumschlagen muss.

---------------------------------------------------------------------------------------
print &JSDocument( <<'EndOfDocument' );
<html><head>
<script language="JavaScript">
-- hier kommt javascript-code (natürlich angepasst) --
</script>
</head>
[...]
EndOfDocument

sub JSDocument {
    my ($doc) = @_;

#-----------------------------------------------
    # Jetzt jede einzelne Zeile mit einem JS-writeln
    # erweitern

$doc =~ s/^(.*)$/'parent.frames[0].document.writeln ("' . quotemeta($1) . ')";'/em;

#-----------------------------------------------------------
    # Als Rückgabewert können wir nun noch ein paar Anweisungen
    # um die Ausgabe herumstricken ...

return <<"EndOfJS";
parent.frames[0].document.open();
$doc
[...]
EndOfJS
}
---------------------------------------------------------------------------------------

Auch bei here-document ist zu unterscheiden - zwischen einfachen und doppelten Anführungszeichen.

Viel Spaß noch,
   Jörk