742 commands · 48 cheat sheets · 6 subcategories

HTML master quick reference — Page 3

Browse 191 commands from 12 focused cheat sheets on page 3 of 4. Each example opens its matching detailed section.

DOM and Lifecycle · 18 commands

Browser Events and Event Delegation Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Register a listenerbutton.addEventListener('click', handleClick)View examples
Listen oncebutton.addEventListener('click', initialize, { once: true })View examples
Group listener cleanuppanel.addEventListener('input', update, { signal: controller.signal })View examples
Remove a listenerbutton.removeEventListener('click', handleClick)View examples
Observe the capture phasedocument.addEventListener('click', inspect, { capture: true })View examples
Read the listener targetconst container = event.currentTargetView examples
Stop further propagationevent.stopPropagation()View examples
Resolve a delegated actionconst action = event.target instanceof Element ? event.target.closest('[data-action]') : nullView examples
Verify delegation ownershipif (!menu.contains(action)) returnView examples
Cancel a default actionif (event.cancelable) event.preventDefault()View examples
Declare a passive listenerwindow.addEventListener('touchmove', observe, { passive: true })View examples
Inspect cancellationif (event.defaultPrevented) returnView examples
Create an application eventconst event = new CustomEvent('cart:add', { detail: { sku: 'A42' } })View examples
Dispatch synchronouslyconst accepted = cart.dispatchEvent(event)View examples
Inspect the event pathconst path = event.composedPath()View examples
Cross a shadow boundarynew CustomEvent('widget:change', { bubbles: true, composed: true })View examples
Prefer activation eventsbutton.addEventListener('click', activate)View examples
Read a logical keyif (event.key === 'Escape') closeDialog()View examples

DOM and Lifecycle · 13 commands

Document Lifecycle and Page Visibility Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Inspect readinessdocument.readyStateView examples
Wait for parsed DOMdocument.addEventListener('DOMContentLoaded', init, { once: true })View examples
Wait for page loadwindow.addEventListener('load', measureAssets, { once: true })View examples
Initialize late or earlydocument.readyState === 'loading' ? document.addEventListener('DOMContentLoaded', init) : init()View examples
Read visibilitydocument.visibilityState === 'hidden'View examples
Observe visibilitydocument.addEventListener('visibilitychange', syncWork)View examples
Handle page activationwindow.addEventListener('pageshow', restoreTransientState)View examples
Handle page deactivationwindow.addEventListener('pagehide', releaseTransientResources)View examples
Detect cached restorationif (event.persisted) refreshVolatileData()View examples
Warn about unsaved workwindow.addEventListener('beforeunload', event => event.preventDefault())View examples
Avoid unload handlerswindow.addEventListener('pagehide', cleanup)View examples
Queue a small beaconnavigator.sendBeacon('/session', payload)View examples
Send with fetch optionsfetch('/session', { method: 'POST', body: payload, keepalive: true })View examples

DOM and Lifecycle · 15 commands

DOM Selection and Range API Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create a collapsed rangeconst range = document.createRange()View examples
Set text boundariesrange.setStart(textNode, 2); range.setEnd(textNode, 7)View examples
Select a noderange.selectNode(element)View examples
Select node contentsrange.selectNodeContents(element)View examples
Read document selectionconst selection = document.getSelection()View examples
Guard an empty selectionif (selection && selection.rangeCount > 0) selection.getRangeAt(0)View examples
Display a rangeselection.removeAllRanges(); selection.addRange(range)View examples
Observe selection changesdocument.addEventListener('selectionchange', updateToolbar)View examples
Clone selected contentconst fragment = range.cloneContents()View examples
Move selected content outconst fragment = range.extractContents()View examples
Insert at a boundaryrange.insertNode(document.createTextNode('Note'))View examples
Measure line fragmentsconst rects = range.getClientRects()View examples
Compare two startsa.compareBoundaryPoints(Range.START_TO_START, b)View examples
Read textarea offsetsconst selected = field.value.slice(field.selectionStart, field.selectionEnd)View examples
Map across shadow rootsselection.getComposedRanges({ shadowRoots: [root] })View examples

DOM and Lifecycle · 21 commands

DOM Traversal and Manipulation Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Select the first matchconst submit = form.querySelector('button[type="submit"]')View examples
Select a static snapshotconst rows = table.querySelectorAll('tbody > tr')View examples
Escape a selector valueconst item = document.querySelector(`#${CSS.escape(rawId)}`)View examples
Test an elementif (element.matches('[aria-current]')) markActive(element)View examples
Find the nearest matchconst card = button.closest('[data-card]')View examples
Skip non-element siblingsconst nextItem = item.nextElementSiblingView examples
Read live element childrenconst liveItems = list.childrenView examples
Create a filtered tree walkconst walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT)View examples
Create an elementconst item = document.createElement('li')View examples
Set literal textitem.textContent = userValueView examples
Stage nodes in a fragmentconst fragment = document.createDocumentFragment()View examples
Append nodes and textcard.append(title, ' — ', summary)View examples
Move a node to the startlist.prepend(list.lastElementChild)View examples
Insert before a siblingreference.before(newNode)View examples
Replace all childrencontainer.replaceChildren(emptyState)View examples
Replace one nodeplaceholder.replaceWith(content)View examples
Clone a subtreeconst copy = template.content.cloneNode(true)View examples
Import a cross-document copyconst copy = document.importNode(source, true)View examples
Adopt a cross-document nodeconst moved = document.adoptNode(source)View examples
Remove a nodenotice.remove()View examples
Observe child mutationsobserver.observe(list, { childList: true, subtree: true })View examples

DOM and Lifecycle · 11 commands

HTML Templates, Slots, and Custom Elements Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Declare a template<template id="card-template"> <article> <slot> </slot> </article> </template>View examples
Clone template contentconst fragment = template.content.cloneNode(true)View examples
Register an elementcustomElements.define('status-card', StatusCard)View examples
Handle connectionconnectedCallback() { this.render(); }View examples
Observe attributesstatic observedAttributes = ['status']View examples
React to an attributeattributeChangedCallback(name, oldValue, newValue) { this.render(); }View examples
Attach an open shadow rootconst root = this.attachShadow({ mode: 'open' })View examples
Project default content<slot>Fallback text</slot>View examples
Project named content<slot name="actions"></slot>View examples
Expose a style part<button part="button"><slot></slot></button>View examples
Wait for registrationawait customElements.whenDefined('status-card')View examples

DOM and Lifecycle · 13 commands

HTML URL, History, and Navigation APIs Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Resolve against a baseconst url = new URL('../guide', document.baseURI)View examples
Parse without throwingconst url = URL.parse(input, location.href)View examples
Validate a destinationif (url.origin !== location.origin || url.protocol !== 'https:') throw new Error('Blocked')View examples
Set one query valueurl.searchParams.set('page', '2')View examples
Append a repeated valueurl.searchParams.append('tag', 'html')View examples
Read repeated valuesconst tags = url.searchParams.getAll('tag')View examples
Navigate to a fragmentlocation.hash = 'installation'View examples
Observe fragment traversaladdEventListener('hashchange', event => render(location.hash))View examples
Add application historyhistory.pushState({ page: 2 }, '', '?page=2')View examples
Replace the current entryhistory.replaceState({ page: 1 }, '', '?page=1')View examples
Restore traversed stateaddEventListener('popstate', event => render(event.state))View examples
Intercept supported navigationevent.intercept({ handler: () => render(new URL(event.destination.url)) })View examples
Navigate with the new APIawait navigation.navigate('/account').finishedView examples

DOM and Lifecycle · 18 commands

Mutation, Intersection, and Resize Observers Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create a mutation observerconst observer = new MutationObserver(records => process(records))View examples
Observe selected mutationsobserver.observe(root, { childList: true, subtree: true })View examples
Filter attributesobserver.observe(node, { attributes: true, attributeFilter: ['aria-expanded'] })View examples
Request old valuesobserver.observe(node, { attributes: true, attributeOldValue: true })View examples
Drain pending recordsconst pending = observer.takeRecords()View examples
Create an intersection observerconst observer = new IntersectionObserver(onIntersect, { threshold: [0, 0.5, 1] })View examples
Expand the root boundarynew IntersectionObserver(callback, { rootMargin: '0px 0px 300px' })View examples
Observe an intersection targetobserver.observe(document.querySelector('[data-lazy]'))View examples
Check visible intersectionif (entry.isIntersecting) reveal(entry.target)View examples
Stop tracking one targetobserver.unobserve(entry.target)View examples
Drain intersection entriesconst pending = observer.takeRecords()View examples
Create a resize observerconst observer = new ResizeObserver(entries => update(entries))View examples
Observe the border boxobserver.observe(panel, { box: 'border-box' })View examples
Read logical box sizeconst { inlineSize, blockSize } = entry.contentBoxSize[0]View examples
Read the legacy fallbackconst width = entry.contentRect.widthView examples
Stop observing one elementobserver.unobserve(panel)View examples
Disconnect an observerobserver.disconnect()View examples
Feature-detect supportif ('ResizeObserver' in globalThis) startResizeTracking()View examples

DOM and Lifecycle · 15 commands

Performance Timing and Observers Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Detect observable typesconst types = PerformanceObserver.supportedEntryTypesView examples
Observe buffered entriesobserver.observe({ type: 'largest-contentful-paint', buffered: true })View examples
Drain queued recordsconst pending = observer.takeRecords()View examples
Stop observationobserver.disconnect()View examples
Read navigation timingconst [nav] = performance.getEntriesByType('navigation')View examples
Compute response waitconst ttfb = nav.responseStart - nav.requestStartView examples
Read resource timingsconst resources = performance.getEntriesByType('resource')View examples
Expose cross-origin detailTiming-Allow-Origin: https://app.exampleView examples
Clear the resource bufferperformance.clearResourceTimings()View examples
Mark a workflow pointperformance.mark('checkout:start')View examples
Measure between marksperformance.measure('checkout', 'checkout:start', 'checkout:end')View examples
Clear application marksperformance.clearMarks('checkout:start')View examples
Read first contentful paintperformance.getEntriesByName('first-contentful-paint', 'paint')[0]View examples
Observe long interactionsobserver.observe({ type: 'event', buffered: true, durationThreshold: 40 })View examples
Bound telemetry payloadsnavigator.sendBeacon('/rum', new Blob([payload], { type: 'application/json' }))View examples

DOM and Lifecycle · 14 commands

Web Animations API Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create an animationconst animation = element.animate(keyframes, { duration: 300, easing: 'ease-out' })View examples
Use property-indexed keyframeselement.animate({ opacity: [0, 1], transform: ['scale(.95)', 'scale(1)'] }, 200)View examples
Set keyframe offsets[{ opacity: 0, offset: 0 }, { opacity: 1, offset: 0.4 }, { opacity: 1, offset: 1 }]View examples
Pause playbackanimation.pause()View examples
Reverse safelyanimation.reverse()View examples
Change playback rateanimation.updatePlaybackRate(0.5)View examples
Seek to a timeanimation.currentTime = 150View examples
Await completionawait animation.finishedView examples
Await pending operationsawait animation.readyView examples
Commit computed valuesanimation.commitStyles(); animation.cancel()View examples
Inspect element animationsconst animations = element.getAnimations({ subtree: true })View examples
Read computed timingconst timing = animation.effect.getComputedTiming()View examples
Change effect timinganimation.effect.updateTiming({ duration: 500, iterations: 2 })View examples
Detect reduced motionconst reduce = matchMedia('(prefers-reduced-motion: reduce)').matchesView examples

Networking and Offline · 16 commands

Fetch API and Streaming Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Fetch JSONconst response = await fetch('/api/items', { headers: { Accept: 'application/json' } })View examples
Reject an HTTP errorif (!response.ok) throw new Error(`HTTP ${response.status}`)View examples
Consume JSON onceconst data = await response.json()View examples
Construct a Requestconst request = new Request('/api/items', { method: 'GET', cache: 'no-cache' })View examples
Require a CORS responseawait fetch('https://api.example/data', { mode: 'cors' })View examples
Include cross-origin credentialsawait fetch(url, { mode: 'cors', credentials: 'include' })View examples
Enforce same-origin accessawait fetch(url, { mode: 'same-origin' })View examples
Cancel with a controllerconst controller = new AbortController(); fetch(url, { signal: controller.signal })View examples
Apply a deadlineawait fetch(url, { signal: AbortSignal.timeout(5000) })View examples
Combine cancellation sourcesconst signal = AbortSignal.any([controller.signal, AbortSignal.timeout(5000)])View examples
Acquire a byte readerconst reader = response.body.getReader()View examples
Decode streamed textconst textStream = response.body.pipeThrough(new TextDecoderStream())View examples
Pipe with cancellationawait response.body.pipeTo(destination, { signal })View examples
Check body disturbanceif (response.bodyUsed) throw new Error('Body already consumed')View examples
Clone before readingconst auditCopy = response.clone()View examples
Upload a streamawait fetch('/upload', { method: 'POST', body: stream, duplex: 'half' })View examples

Networking and Offline · 23 commands

HTML Script, Stylesheet, and Resource Loading Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Run a parser-blocking script<script src="/js/config.js"></script>View examples
Defer a classic script<script src="/js/app.js" defer></script>View examples
Load an independent script<script src="/js/analytics.js" async></script>View examples
Load a JavaScript module<script type="module" src="/js/app.js"></script>View examples
Embed an inline module<script type="module"> import { start } from "/js/app.js"; start(); </script>View examples
Import code on demandconst { openHelp } = await import("/js/help.js");View examples
Map a bare module name<script type="importmap"> {"imports":{"app":"/js/app.js"}} </script>View examples
Prepare a module early<link rel="modulepreload" href="/js/app.js">View examples
Provide a legacy fallback<script nomodule src="/js/legacy.js"></script>View examples
Load an external stylesheet<link rel="stylesheet" href="/css/site.css">View examples
Apply styles to matching media<link rel="stylesheet" href="/css/print.css" media="print">View examples
Embed document styles<style>.notice { color: #9a3412; }</style>View examples
Import CSS from CSS@import url("/css/theme.css");View examples
Preload a stylesheet<link rel="preload" href="/css/critical.css" as="style">View examples
Preload a web font<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin>View examples
Open a connection early<link rel="preconnect" href="https://cdn.example.com" crossorigin>View examples
Resolve an origin early<link rel="dns-prefetch" href="https://analytics.example.com">View examples
Fetch a likely future resource<link rel="prefetch" href="/next-page.html">View examples
Prioritize an important image<img src="/images/hero.webp" alt="Product dashboard overview" width="1200" height="630" fetchpriority="high">View examples
Defer an off-screen embed<iframe src="/embed/report" title="Quarterly report preview" width="800" height="450" loading="lazy"> </iframe>View examples
Verify a cross-origin script<script src="https://example.com/example-framework.js" integrity="sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7" crossorigin="anonymous"> </script>View examples
Limit a resource referrer<script src="https://cdn.example.com/widget.js" referrerpolicy="no-referrer"> </script>View examples
Provide a no-script fallback<noscript> <p> JavaScript is required to open the interactive chart. </p> </noscript>View examples

Networking and Offline · 14 commands

Push Notifications and App Badging Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Register a service workerconst registration = await navigator.serviceWorker.register('/sw.js', { scope: '/' })View examples
Wait for an active workerconst registration = await navigator.serviceWorker.readyView examples
Request notification permissionconst permission = await Notification.requestPermission()View examples
Read current permissionif (Notification.permission === 'granted') enablePush()View examples
Create a push subscriptionawait registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey })View examples
Reuse a subscriptionconst subscription = await registration.pushManager.getSubscription()View examples
Unsubscribe locallyawait subscription.unsubscribe()View examples
Extend a push eventevent.waitUntil(handlePush(event))View examples
Show a notificationawait self.registration.showNotification(title, options)View examples
Replace related notifications{ tag: 'inbox', renotify: false }View examples
Handle a notification clickself.addEventListener('notificationclick', event => event.waitUntil(openApp(event)))View examples
Find application windowsconst windows = await clients.matchAll({ type: 'window', includeUncontrolled: true })View examples
Set an application badgeawait navigator.setAppBadge(unreadCount)View examples
Clear the application badgeawait navigator.clearAppBadge()View examples
CMDMEMO TERMINALREAD ONLY