Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Excerpt

Indicates a global was replaced by a script using the Define API.

 

Notes

A define with state Define.REPLACED was originally native, but has since been replaced using Define().

Replaced defines are immutable.

You can always access the native implementation of replaced properties by prefixing the name with native Native (see example below).

Note: If the define wasn't originally native, the new define would have a state of Define.ADDED.

Examples

Code Block
themeRDark
languagejavascript
titleChecking a specific state
linenumberstrue
// always use strict equality checks
if (Define.stateOf("chat") === Define.REPLACED) {
	// native chat function existed, but was replaced by a script
	chat(me, "This is using the replacement chat function");

    // the native chat() function is still available via
	native.chat(me, "This is using the native chat function");
}
Code Block
themeRDark
languagejavascript
titleUsing a switch statement to check state
linenumberstrue
// when using switch, order of cases is vitally important
switch (Define.stateOf("chat")) {
	case Define.MISSING : return "chat() is missing";
	case Define.REMOVED : return "chat() was removed by script";
	case Define.ADDED   : return "chat() was added by script";
	case Define.REPLACED: return "chat() was overridden by script";
	case Define.NATIVE  : return "chat() function is native";
	default: return "Status of chat() is unknown";
}
Div
classbox
Availability
Status
colourGreen
titleStable

Requires:

Div
classbox
Contents

Jump to:

Table of Contents
maxLevel5

Div
classbox

Define API

Topics:

Child pages (Children Display)
alltrue
depthall
pageDefine API
excerpttrue