This page is part of a static HTML representation of the TiddlyWiki at https://tiddlywiki.com/

MessageCatcherWidget

 22nd December 2021 at 3:30pm

Introduction

Introduced in v5.2.0

The message catcher widget traps 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.

AttributeDescription
{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
typeName 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
actionsAction 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:

VariablesDescription
event-*All string-based properties of the event object, with the names prefixed with event-
list-eventA 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-paramObjectA list of the names of each the string-based properties of the event.paramObject object (the names are not prefixed with event-paramObject-)
modifierFor 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


\define actions()
<$action-log/>
\end

<$messagecatcher $tm-navigate=<<actions>>>

Click on [[this link]] to fire an action. See the browser JavaScript console for the output

</$messagecatcher>

That renders as:

Click on this link to fire an action. See the browser JavaScript console for the output