<!doctype html> <head> <meta charset="utf-8"> </head> <body> <script> for (const command of [ ["bold", ""], ["italic", ""], ["underline", ""], ["strikethrough", ""], ["subscript", ""], ["superscript", ""], ["cut", ""], ["copy", ""], ["paste", ""], ["delete", ""], ["forwarddelete", ""], ["selectall", ""], ["undo", ""], ["redo", ""], ["indent", ""], ["outdent", ""], ["backcolor", "#888888"], ["forecolor", "#888888"], ["hilitecolor", "#888888"], ["fontname", "Courier"], ["fontsize", "6"], ["increasefontsize", ""], ["decreasefontsize", ""], ["inserthorizontalrule", ""], ["createlink", "foo"], ["insertimage", "foo"], ["inserthtml", "foo"], ["inserttext", "foo"], ["insertparagraph", ""], ["gethtml", ""], ["justifyleft", ""], ["justifyright", ""], ["justifycenter", ""], ["justifyfull", ""], ["removeformat", ""], ["unlink", ""], ["insertorderedlist", ""], ["insertunorderedlist", ""], ["formatblock", "h1"], ["heading", "h1"], ["stylewithcss", "true"], ["usecss", "true"], ["contentreadonly", "true"], ["readonly", "true"], ["insertbronreturn", "true"], ["enableobjectresizing", "true"], ["enableinlinetableediting", "true"], ]) { document.body.innerHTML = "<div contenteditable>abc</div>"; document.querySelector("div[contenteditable]").focus(); getSelection().removeAllRanges(); try { document.execCommand(command[0], false, command[1]); } catch(e) {} } </script> </body> </html>