in reply to Am I javascript or not?

If you want to make this run a bit faster, and aren't worried about false positives on fringe cases (such as people adding non-standard attributes), you can simplify the test to
my $attr = shift; my @found = { grep /^on[A-Z]/ } keys %$attr;
This also "future proofs" the code against the possiblity of someone's browser adding yet another new event.

Update: D'oh. Make that   my @found = { grep /^on/ } keys %$attr; since the attributes all come back lower-case.

Replies are listed 'Best First'.
Re: Am I javascript or not? (boo)
by boo_radley (Parson) on Mar 30, 2002 at 18:43 UTC
    dws says :
    my $attr = shift; my @found = { grep /^on[A-Z]/ } keys %$attr;
    I thought about doing this, but I wanted to stick to known events. If that's not a concern, then your grep is acceptable as well.
    I originally started out with an inclusive checker, but the performance was pretty awful as I was checking that each tag had acceptable attributes. (An alt attribute is ok for an img tag, but not a p tag, fr instance).
    Another potential speed boost (on closer examination) would come from making all @events lowercase, and getting rid of the i switch in the current grep, as HTML::Parser passes parameters to its handlers in all lowercase.