[role="xpack"]
[[canvas-client-functions]]
=== Canvas client functions

These functions must execute in a browser. They are only available
from within the Canvas application, not via the Canvas HTTP API. These functions must 
execute in the browser because they use browser specific APIs, such as location, 
or interact with the workpad to read filters.

A *** denotes a required argument.

[float]
=== asset

Uses Canvas workpad asset objects to provide argument values. Usually images.

*Accepts:* null

[cols="3*^<"]
|===
|Argument |Type |Description

|_Unnamed_*
|string
|The ID of the asset value to return
|===

*Returns:* string


[float]
=== browser

Forces the interpreter to return to the browser.

*Accepts:* Anything or nothing

*Returns:* Depends on your input and arguments

[float]
=== filters

Collects element filters on the workpad, usually to provide them to a data source.

*Accepts:* null

*Returns:* filter

[float]
=== location

Uses the browser's location functionality to get your current location. Usually 
quite slow, but fairly accurate.

*Accepts:* null

*Returns:* datatable

[float]
=== urlparam

Accesses URL parameters and use them in expressions. This will always return a string.

*Accepts:* null

[cols="3*^<"]
|===
|Argument |Type |Description

|_Unnamed_*  (Aliases: `var`, `variable`)
|string
|The URL hash parameter to access

|default
|string
|Return this string if the url parameter is not defined  (default: `""`)
|===

*Returns:* string
