NAME

Quiq::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 = Quiq::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 = Quiq::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 = Quiq::JavaScript->script($h,'inline:js/script.css');
    =>
    <script type="text/javascript">
      ...
    </script>

Code direkt einfügen:

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

Mehrere Code-Spezifikationen:

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

Mehrere Code-Spezifikationen via Arrayreferenz:

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

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

VERSION

1.151

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2019 Frank Seitz

LICENSE

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