Skip to content

$do

ts
$do‎(action: string|action[], target?: string, content?: any, extra?: number|string)

Do a single or an array of actions, as described below.

actiontargetcontentextra
cookie
Manages a cookie
Key1.
Required.
Value2.
Required.
Expiration in seconds. If negative, deletes.
Default: 604800 (7 days).
session
Manages a sessionStorage item
Key1.
Required.
Value2.
Required w/o extra.
If negative, deletes.
Required w/o content.
local
Manages a localStorage item
Key1.
Required.
Value2.
Required w/o extra.
If negative, deletes.
Required w/o content.
go
Goes to an URL
URL.
Required.
Delay in seconds.
Default: 5.
open
Opens an URL in another tab
URL.
Required.
Delay in seconds.
Default: 5.
reload
Reloads the current page
Delay in seconds.
Default: 5.
scroll
Scrolls to an element
Element3[first].
Required.
title
Changes the document title
New title.
Required.
text
Replaces a text content
Element3.
Required.
Text content.
Required.
html
Replaces a HTML content
Element3.
Required.
HTML content.
Required.
value
Updates a value
Element3.
Required.
New value.
Required.
before
Adds HTML before (outside) a element
Element3.
Required.
HTML content.
Required.
after
Adds HTML after (outside) a element
Element3.
Required.
HTML content.
Required.
prepend
Adds HTML inside (first) a element
Element3.
Required.
HTML content.
Required.
append
Adds HTML inside (last) a element
Element3.
Required.
HTML content.
Required.
show
Shows a element
Element3.
Required.
hide
Hides a element
Element3.
Required.
remove
Removes a element
Element3.
Required.
move
Moves a element
Destination3[first].
Required.
Source3[first].
Required.
clone
Clones a element
Destination3.
Required.
Source3[first].
Required.
addClass
Adds CSS classes
Element3.
Required.
Classes separated by space.
Required.
remClass
Removes CSS classes
Element3.
Required.
Classes separated by space.
Required.
style
Sets style to a element
Element3.
Required.
Object with camelCase or kebab-case properties, and values.
Required.
setAttr
Sets a attribute
Element3.
Required.
Attribute name.
Required.
Attribute value.
Default: true.
remAttr
Removes a attribute
Element3.
Required.
Attribute name.
Required.
trigger
Triggers an event
Element3.
Required.
Event name.
Required.
method
Calls a method
Element3.
Required.
Method.
Required.
copy
Copies to the clipboard
Element3[first]. Copy its value or innerText4.
Required w/o content.
Fallback when target is not found or given.
Required w/o target.
paste
Pastes from the clipboard
Element3.
Required.
Destination propriety.
Default: value or textContent4.
callback
Executes a bit of code
JS code, limit to 22 length.
Required.
script
Adds a new script tag
Script ID.
Required.
Script full URL source.
Required.
Object with atributes.
Default: { async: '' }.
pip
Requests picture-in-picture mode for a video
VideoElement3[first].
Default: 'video'.
toast
Shows a alert and returns its ID
URL.
Default: none.
Toast text.
Required.
Duration in seconds.
Default: 5.
delay
Delays one or a list of actions
One or an array of actions.
Required.
Delay in seconds.
Default: 5.
ignore
Skips.

Usage

html
<button x-on:click="$do('cookie', 'terms-accept', 'yes')">Accept</button>
js
$do([
   { action: 'after', target: 'body', content: '<p id="newP">Lorem ipsum</p>' },
   { action: 'setAttr', target: '#newP', content: 'class', extra: 'truncate' },
])

Notes

  1. Storage key
    A plain-text string that will be sanitized.
  2. Storage value
    The content will be JSON.stringify.
  3. Element selector
    A CSS selector, such as #id, .class, element, element[attr=value]. Affects all matched elements, except for those one marked with [first], which affects only the first found. If no element is found, fails silently.
  4. Value or else
    Uses the value if the element is an input, output, select, button, option, or textarea.

Released under the GPLv3 License.