Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 148ee7bf

Von Sven Schöling vor mehr als 3 Jahren hinzugefügt

  • ID 148ee7bf2891e69fe800e5e87b6c33d046262fab
  • Vorgänger 317141a7
  • Nachfolger d813da0f

Presenter::EscapedText: escape_js_calls

Helferfunktion um das manuelle Zusammenstückeln von onclick Callbacks zu
erleichtern.

Unterschiede anzeigen:

SL/Presenter/EscapedText.pm
2 2

  
3 3
use strict;
4 4
use Exporter qw(import);
5
use Scalar::Util qw(looks_like_number);
5 6

  
6
our @EXPORT_OK = qw(escape is_escaped escape_js);
7
our @EXPORT_OK = qw(escape is_escaped escape_js escape_js_call);
7 8
our %EXPORT_TAGS = (ALL => \@EXPORT_OK);
8 9

  
9 10
use JSON ();
......
54 55
  __PACKAGE__->new(text => $text, is_escaped => 1);
55 56
}
56 57

  
58
sub escape_js_call {
59
  my ($func, @args) = @_;
60

  
61
  escape(
62
      sprintf "%s(%s)",
63
      escape_js($func),
64
      join ", ", map {
65
        looks_like_number($_)
66
          ? $_
67
          : '"' . escape_js($_) . '"'
68
      } @args
69
  );
70
}
71

  
57 72
# internal magic
58 73
sub escaped_text {
59 74
  my ($self) = @_;
......
141 156

  
142 157
Static constructor, can be exported. Like C<escape> but also escapes Javascript.
143 158

  
159
=item C<escape_js_call $func_name, @args>
160

  
161
Static constructor, can be exported. Used to construct a javascript call than
162
can be used for onclick handlers in other Presenter functions.
163

  
164
For example:
165

  
166
  L.button_tag(
167
    P.escape_js_call("kivi.Package.some_func", arg_one, arg_two, arg_three)
168
    title
169
  )
170

  
144 171
=back
145 172

  
146 173
=head1 METHODS

Auch abrufbar als: Unified diff