Index: openacs-4/packages/acs-templating/tcl/head-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/head-procs.tcl,v diff -u -N -r1.45.2.8 -r1.45.2.9 --- openacs-4/packages/acs-templating/tcl/head-procs.tcl 22 Apr 2019 19:19:57 -0000 1.45.2.8 +++ openacs-4/packages/acs-templating/tcl/head-procs.tcl 12 May 2019 11:20:43 -0000 1.45.2.9 @@ -1068,11 +1068,16 @@ @author Gustaf Neumann } { set prevent [expr {$preventdefault_p ? "event.preventDefault();" : ""}] - - set script [subst { - e.addEventListener('$event', function (event) {$prevent$script}, $usecapture_p); - }] - + if {!$preventdefault_p && [regexp {^\s*([a-zA-Z0-9_]+)[\(]event[\)];\s*} $script . fn]} { + # + # In the most simple case, there is no need for a wrapper function. + # + set script [subst {e.addEventListener('$event', $fn, $usecapture_p);}] + } else { + set script [subst { + e.addEventListener('$event', function (event) {$prevent$script}, $usecapture_p); + }] + } if {[info exists id]} { set script [subst { var e = document.getElementById('$id');