NAME

Prty::JavaScript - Generierung von JavaScript-Code

METHODS

Klassenmethoden

line() - Mache JavaScript-Code einzeilig

Synopsis

$line = $class->line($code);

Arguments

$code

Mehrzeiliger JavaScript-Code (String)

Returns

JavaScript-Code einzeilig (String)

Description

Wandele mehrzeiligen JavaScript-Code in einzeiligen JavaScript-Code und liefere diesen zurück. Die Methode ist nützlich, wenn formatierter, mehrzeiliger JavaScript-Code in ein HTML Tag-Attribut (JavaScript-Handler wie onclick="..." oder onchange="...") eingesetzt werden soll.

Example

Aus

var s = '';
for (var i = 0; i < 10; i++)
    s += 'x';

wird

var s = ''; for (var i = 0; i < 10; i++) s += 'x';

Details

Die Regeln der Umwandlung:

  • Leerzeilen und Zeilen nur aus Whitespace werden entfernt

  • Whitespace (einschl. Zeilenumbruch) am Anfang und am Ende jeder Zeile wird entfernt

  • alle Zeilen werden mit einem Leerzeichen als Trenner konkateniert

Damit dies sicher funktioniert, muss jede JavaScript-Anweisung mit einem Semikolon am Zeilenende beendet werden und darf nicht, wie JavaScipt es auch erlaubt, weggelassen werden.

script() - Generiere einen oder mehrere <script>-Tags

Synopsis

$scriptTags = Prty::JavaScript->script($h,@specs);

Arguments

@specs

Liste von Script-Spezifikationen.

Description

Übersetze die Code-Spezifikationen @specs in einen oder mehrere Script-Tags.

Mögliche Code-Spezifikationen:

"inline:$file":

Datei $file wird geladen und ihr Inhalt wird in einen Script-Tag eingefasst.

$string (Zeichenkette mit runden Klammern oder Leerzeichen)

Zeichenkette $string wird in einen Script-Tag eingefasst.

$url (Zeichenkette ohne runde Klammern oder Leerzeichen):

Zeichenkette wird als URL interpretiert und in einen Script-Tag mit src-Attribut übersetzt.

\@specs (Arrayreferenz):

Wird zu @specs expandiert.

Examples

Code zum Laden einer JavaScript-Datei über URL:

$script = Prty::JavaScript->script($h,'https://host.dom/scr.js');
=>
<script src="https://host.dom/scr.js" type="text/javascript"></script>

Code aus Datei einfügen:

$style = Prty::JavaScript->script($h,'inline:js/script.css');
=>
<script type="text/javascript">
  ...
</script>

Code direkt einfügen:

$style = Prty::JavaScript->script($h,q|
    ...
|);
=>
<script type="text/javascript">
  ...
</script>

Mehrere Code-Spezifikationen:

$style = Prty::JavaScript->script(
    '...'
    '...'
);

Mehrere Code-Spezifikationen via Arrayreferenz:

$style = Prty::JavaScript->script(
    ['...','...']
);

Dies ist nützlich, wenn die Spezifikation von einem Parameter einer umgebenden Methode kommt.

VERSION

1.122

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2018 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.