Obsolete
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.
When an HTML document has been switched to designMode, its document object exposes an execCommand method to run commands that manipulate the current editable region, such as form inputs or contentEditable elements.
Most commands affect the document's selection (bold, italics, etc.), while others insert new elements (adding a link), or affect an entire line (indenting). When using contentEditable, execCommand() affects the currently active editable element.
Syntax
document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)
Return value
A Boolean that is false if the command is unsupported or disabled.
Note: Only returns true if part of a user interaction. Don't try using the return value to verify browser support before calling a command.
Parameters
aCommandName- A
DOMStringspecifying the name of the command to execute. See Commands for a list of possible commands. aShowDefaultUI- A
Booleanindicating whether the default user interface should be shown. This is not implemented in Mozilla. aValueArgument- For commands which require an input argument, is a
DOMStringproviding that information. For example,insertImagerequires the URL of the image to insert. Specifynullif no argument is needed.
Commands
backColor- Changes the document background color. In
styleWithCssmode, it affects the background color of the containing block instead. This requires a<color>value string to be passed in as a value argument. Note that Internet Explorer uses this to set the text background color. bold- Toggles bold on/off for the selection or at the insertion point. Internet Explorer uses the
<strong>tag instead of<b>. ClearAuthenticationCache- Clears all authentication credentials from the cache.
contentReadOnly- Makes the content document either read-only or editable. This requires a boolean true/false as the value argument. (Not supported by Internet Explorer.)
copy- Copies the current selection to the clipboard. Conditions of having this behavior enabled vary from one browser to another, and have evolved over time. Check the compatibility table to determine if you can use it in your case.
createLink- Creates an hyperlink from the selection, but only if there is a selection. Requires a URI string as a value argument for the hyperlink's
href. The URI must contain at least a single character, which may be whitespace. (Internet Explorer will create a link with anullvalue.) cut- Removes the current selection and copies it to the clipboard. When this behavior is enabled varies between browsers, and its conditions have evolved over time. Check the compatibility table for usage details.
decreaseFontSize- Adds a
<small>tag around the selection or at the insertion point. (Not supported by Internet Explorer.) defaultParagraphSeparator- Changes the paragraph separator used when new paragraphs are created in editable text regions. See Differences in markup generation for more details.
delete- Deletes the current selection.
enableAbsolutePositionEditor- Enables or disables the grabber that allows absolutely-positioned elements to be moved around. The grabber is disabled by default since Firefox 64 (bug 1490641).
enableInlineTableEditing- Enables or disables the table row/column insertion and deletion controls. The controls are disabled by default since Firefox 64 (bug 1490641).
enableObjectResizing- Enables or disables the resize handles on images, tables, and absolutely-positioned elements and other resizable objects. The handles are disabled by default since Firefox 64 (bug 1490641).
fontName- Changes the font name for the selection or at the insertion point. This requires a font name string (like
"Arial") as a value argument. fontSize- Changes the font size for the selection or at the insertion point. This requires an integer from
1-7as a value argument. foreColor- Changes a font color for the selection or at the insertion point. This requires a hexadecimal color value string as a value argument.
formatBlock- Adds an HTML block-level element around the line containing the current selection, replacing the block element containing the line if one exists (in Firefox,
<blockquote>is the exception — it will wrap any containing block element). Requires a tag-name string as a value argument. Virtually all block-level elements can be used. (Internet Explorer and Edge support only heading tagsH1–H6,ADDRESS, andPRE, which must be wrapped in angle brackets, such as"<H1>".) forwardDelete- Deletes the character ahead of the cursor's position, identical to hitting the Delete key on a Windows keyboard.
heading- Adds a heading element around a selection or insertion point line. Requires the tag-name string as a value argument (i.e.
"H1","H6"). (Not supported by Internet Explorer and Safari.) hiliteColor- Changes the background color for the selection or at the insertion point. Requires a color value string as a value argument.
useCSSmust betruefor this to function. (Not supported by Internet Explorer.) increaseFontSize- Adds a
<big>tag around the selection or at the insertion point. (Not supported by Internet Explorer.) indent- Indents the line containing the selection or insertion point. In Firefox, if the selection spans multiple lines at different levels of indentation, only the least indented lines in the selection will be indented.
insertBrOnReturn- Controls whether the Enter key inserts a
<br>element, or splits the current block element into two. (Not supported by Internet Explorer.) insertHorizontalRule- Inserts a
<hr>element at the insertion point, or replaces the selection with it. insertHTML- Inserts an HTML string at the insertion point (deletes selection). Requires a valid HTML string as a value argument. (Not supported by Internet Explorer.)
insertImage- Inserts an image at the insertion point (deletes selection). Requires a URL string for the image's
srcas a value argument. The requirements for this string are the same ascreateLink. insertOrderedList- Creates a numbered ordered list for the selection or at the insertion point.
insertUnorderedList- Creates a bulleted unordered list for the selection or at the insertion point.
insertParagraph- Inserts a paragraph around the selection or the current line. (Internet Explorer inserts a paragraph at the insertion point and deletes the selection.)
insertText- Inserts the given plain text at the insertion point (deletes selection).
italic- Toggles italics on/off for the selection or at the insertion point. (Internet Explorer uses the
<em>element instead of<i>.) justifyCenter- Centers the selection or insertion point.
justifyFull- Justifies the selection or insertion point.
justifyLeft- Justifies the selection or insertion point to the left.
justifyRight- Right-justifies the selection or the insertion point.
outdent- Outdents the line containing the selection or insertion point.
paste- Pastes the clipboard contents at the insertion point (replaces current selection). Disabled for web content. See [1].
redo- Redoes the previous undo command.
removeFormat- Removes all formatting from the current selection.
selectAll- Selects all of the content of the editable region.
strikeThrough- Toggles strikethrough on/off for the selection or at the insertion point.
subscript- Toggles subscript on/off for the selection or at the insertion point.
superscript- Toggles superscript on/off for the selection or at the insertion point.
underline- Toggles underline on/off for the selection or at the insertion point.
undo- Undoes the last executed command.
unlink- Removes the anchor element from a selected hyperlink.
useCSS- Toggles the use of HTML tags or CSS for the generated markup. Requires a boolean true/false as a value argument.
- NOTE: This argument is logically backwards (i.e. use
falseto use CSS,trueto use HTML) and unsupported by Internet Explorer. This has been deprecated in favor ofstyleWithCSS. styleWithCSS- Replaces the
useCSScommand.truemodifies/generatesstyleattributes in markup, false generates presentational elements.
Example
An example of how to use it on CodePen.
Specifications
| Specification | Status | Comment |
|---|---|---|
| execCommand | Unofficial Draft |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
execCommand | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 4 | Opera Full support 9 | Safari Full support 1.3 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 |
ClearAuthenticationCache command | Chrome No support No | Edge No support 12 — 79 | Firefox No support No | IE Full support 6 | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No |
copy command | Chrome Full support 42 | Edge Full support 12 | Firefox Full support 41 | IE Full support 9 | Opera Full support 29 | Safari Full support 10 | WebView Android Full support 42 | Chrome Android Full support 42 | Firefox Android Full support 41 | Opera Android Full support 29 | Safari iOS Full support 10 | Samsung Internet Android Full support 4.0 |
cut command | Chrome Full support 42 | Edge Full support 12 | Firefox Full support 41 | IE Full support 9 | Opera Full support 29 | Safari Full support 10 | WebView Android Full support 42 | Chrome Android Full support 42 | Firefox Android Full support 41 | Opera Android Full support 29 | Safari iOS Full support 10 | Samsung Internet Android Full support 4.0 |
defaultParagraphSeparator command | Chrome No support No | Edge No support ≤18 — 79 | Firefox Full support 55 | IE No support No | Opera Full support Yes | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android Full support 55 | Opera Android Full support Yes | Safari iOS No support No | Samsung Internet Android No support No |
insertBrOnReturn command | Chrome No support No | Edge No support No | Firefox Full support Yes | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android Full support Yes | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
- Non-standard. Expect poor cross-browser support.
- Non-standard. Expect poor cross-browser support.
- Deprecated. Not for use in new websites.
- Deprecated. Not for use in new websites.
See also
HTMLElement.contentEditabledocument.designMode- Rich-Text Editing in Mozilla
- Scribe's "Browser Inconsistencies" documentation with bugs related to
document.execCommand.
