created: 20210309133636211 modified: 20211222153049771 tags: Widgets MessageHandlerWidgets TriggeringWidgets title: MessageCatcherWidget type: text/vnd.tiddlywiki ! Introduction <<.from-version "5.2.0">> The message catcher widget traps [[messages|Messages]] dispatched within its child content, and allows invoking a series of ActionWidgets in response to those messages. ! Content and Attributes The content of the `<$messagecatcher>` widget is displayed normally. |!Attribute |!Description | |//{any attributes starting with $}// |Each attribute name (excluding the $) specifies the name of a message, and the value specifies the action string to be invoked | |type |Name of the message be trapped, for example "tm-scroll" or "tm-navigate". The `type` and `actions` attributes can be useful when the type of event needs to be specified via a variable or text reference | |actions |Action string to be invoked when a matching message is trapped. Must be used in conjunction with the `type` attribute | ! Variables The message catcher widget sets the following variables within each action string: |!Variables |!Description | |`event-*` |All string-based properties of the `event` object, with the names prefixed with `event-` | |`list-event` |A list of the names of each the string-based properties of the `event` object (the names are not prefixed with `event-`) | |`event-paramObject-*` |All string-based properties of the `event.paramObject` object, with the names prefixed with `event-paramObject-` | |`list-event-paramObject` |A list of the names of each the string-based properties of the `event.paramObject` object (the names are not prefixed with `event-paramObject-`) | |`modifier` |For messages that originated with browser events, the modifier keys that were pressed when the event was fired. The possible modifiers are ''normal'' (no modifiers), ''ctrl'', ''ctrl-alt'', ''ctrl-shift'', ''alt'', ''alt-shift'', ''shift'' and ''ctrl-alt-shift'' | ! Example <$macrocall $name="wikitext-example-without-html" src=""" \define actions() <$action-log/> \end <$messagecatcher $tm-navigate=<>> Click on [[this link]] to fire an action. See the browser JavaScript console for the output """/>