Run Timing
@run-at decides when your script executes.
Timing options
document-start: before DOM is fully parseddocument-end: after DOMContentLoadeddocument-idle: after load when browser is idle
Example
javascript
// ==UserScript==
// @run-at document-end
// ==/UserScript==
const button = document.querySelector('button.buy');
if (button) button.textContent = 'Buy now';Pick the right timing
- Use
document-startfor early CSS/patching. - Use
document-endfor most DOM edits. - Use
document-idlefor heavy or non-critical work.
Debug timing issues
If selectors return null, move later:
document-start->document-enddocument-end->document-idle