Document.execCommand()

已過時

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.

當 HTML 文件(document)被切換到 designMode 時,它的 document 物件就會對外暴露 execCommand 方法作為操控目前可編輯區域的指令,譬如 form inputscontentEditable 元素。

多數的指令會作用在文件的選取 (粗體、斜體等),而其他則像是插入新的元素(新增一個連結)或是影響一整列的文字(縮排)。當使用 contentEditable 時, execCommand() 會作用在目前活躍的可編輯元素上。

語法

document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)

回傳值

如果該指令不被支援或停用將回傳一個 falseBoolean 值。

備註:只有在使用者互動的部分回傳 true 。請不要嘗試在呼叫指令前使用回傳值來確認瀏覽器是否支援。

參數

aCommandName
一個 DOMString 作為指定要執行的指令。所有可用的指令列表請見 Commands
aShowDefaultUI
一個 Boolean 作為指示是否顯示預設的使用者介面。 Mozilla 並未實作這項功能。
aValueArgument
針對需要提供輸入引數的指令,藉由 DOMString 提供相關的資訊。譬如, insertImage 需要提供圖片的 URL 。若沒有引數的需求則可指定為 null

指令

backColor
變更文件的背景色彩。在 styleWithCss 模式中,它作用於涵蓋區域的背景色彩。這個指令需要提供一個 <color> (en-US) 值字串作為引數值。請留意, Internet Explorer 使用這個指令作為設定文字的背景色彩。
bold
切換選取區域插入點的粗體與否。 Internet Explorer 使用 <strong> (en-US) 標籤而不是 <b> (en-US).
ClearAuthenticationCache
清除所有快取中的驗證憑證。
contentReadOnly
使內容文件成為唯讀或可編輯。此指令需要提供布林值 true/false 作為引數值。(Internet Explorer 不支援)。
copy
複製目前選取的區域到剪貼簿。各個瀏覽器對於這個指令的行為可能有所差異且不斷變更。如果你有使用這個指令的情境,請先查閱相容性表格來決定如何使用。
createLink
對選取的區域建立超連結,僅限於有選取內容。需要提供一個 URI 字串值作為超連結的 href 。 URI 必須最少包含一個字元且可以是空白字元(Internet Explorer 會建立一個 null 值的連結)。
cut
移除目前選取的區域並複製到剪貼簿。各個瀏覽器對於這個指令的行為可能有所差異且不斷變更。使用細節請查閱相容性表格
decreaseFontSize
在選取區域或插入點的前後加入一個 <small> (en-US) 標籤( Internet Explorer 不支援)
defaultParagraphSeparator
變更可編輯文字區域於新增段落時的段落分隔器。更多細節請查閱 產生 markup 的區別 (en-US)
delete
刪除目前選取的區域。
enableAbsolutePositionEditor
啟用或停用用於移動絕對定位元素的抓取器。這個指令在 Firefox 63 Beta/Dev 版本中預設停用(bug 1449564)。
enableInlineTableEditing
啟用或停用表格的列 / 欄的插入及刪除。此指令在 Firefox 63 Beta/Dev 版本中預設停用 (bug 1449564)。
enableObjectResizing
啟用或停用圖片、表格、絕對定位元素、其他可重設大小物件的重設大小處理。此指令在 Firefox 63 Beta/Dev 版本中預設停用 (bug 1449564)。
fontName
變更選取區域或插入點的字型名稱。此指令需要字型名稱字串(如「Arial」)作為引數值。
fontSize
變更選取區域或插入點的字型大小。此指令需要 1-7 的整數作為引數值。
foreColor
變更選取區域或插入點的字型色彩。此指令需要十六進位的色彩字串作為引數值。
formatBlock
在目前選取區域的前後加入一個 HTML 區塊層級元素,若選取區域已經存在區塊元素則取代之。(在 Firefox 中, <blockquote> 是個例外——它會包裹住任何所包含的區塊元素)。 此指令需要一個標籤名稱字串作為引數值。幾乎所有區塊層級元素都可以使用(Internet Explorer and Edge 僅支援標題標籤 H1H6ADDRESSPRE 且必須由角括號包裹起來,譬如 "<H1>" )。
forwardDelete
刪除游標位置後的字元,等同於在 Windows 按下 Delete 鍵盤按鍵。
heading
在選取區域或插入點前後加入一個標題元素。此指令需要標籤名稱字串作為引數值(例:"H1", "H6" )(Internet Explorer 及 Safari 不支援)。
hiliteColor
變更選取區域或插入點的背景色彩。此指令需要一個色彩字串作為引數值。 useCSS 必須為 true 才能有作用(Internet Explorer 不支援)。
increaseFontSize
在選取區域或插入點前後加入一個 <big> (en-US) 標題(Internet Explorer 不支援)。
indent
縮排選取區域或插入點所包含的列。在 Firefox ,如果選取的範圍跨越多列且不同的縮排層級,只有選取中最淺層縮排列的才會被縮排。
insertBrOnReturn
控制 Enter 按鍵按下時在目前區塊元素中插入 <br> 元素或分割成為兩個元素(Internet Explorer 不支援)。
insertHorizontalRule
在插入點插入一個 <hr> 元素或以它取代選取的內容。
insertHTML
在插入點插入一個 HTML 字串(會刪除選取內容)需要一個有效的 HTML 字串作為引數值(Internet Explorer 不支援)。
insertImage
在插入點插入一個圖片(會刪除選取內容)。需要一個 URL 字串作為圖片的 src 引數值。這個需求跟 createLink 的字串是一樣的。
insertOrderedList
在選取區域或插入點建立一個有序的清單 (en-US)
insertUnorderedList
在選取區域或插入點建立一個無序的清單 (en-US)
insertParagraph
在選取區域或目前列的前後插入段落 (en-US)(Internet Explorer 會在插入點插入段落並刪除選取的內容)。
insertText
在插入點處插入給予的純文字(選取內容將被刪除)。
italic
切換選取區域或插入點的斜體開關(Internet Explorer 使用 <em> (en-US) 元素而不是 <i> (en-US) )。
justifyCenter
置中對齊選取區域或插入點的內容。
justifyFull
左右對齊選取區域或插入點的內容。
justifyLeft
靠左對齊選取區域或插入點的內容。
justifyRight
靠右對齊選取區域或插入點的內容。
outdent
凸排選取區域或插入點所包含的列。
paste
在目前的插入點貼上剪貼簿的內容(取代目前選取的項目)。網頁內容無法使用。詳閱 [1]。
redo
復原上一個取消的指令。
removeFormat
移除目前選取區域所有的格式。
selectAll
選取可編輯區域的所有內容。
strikeThrough
切換選取區域或插入點的刪除線開關。
subscript
切換選取區域或插入點的 subscript (en-US) 開關。
superscript
切換選取區域或插入點的 superscript (en-US) 開關。
underline
切換選取區域或插入點的底線 (en-US)開關。
undo
取消上一個執行的指令。
unlink
從選取的超連結刪除錨點元素
useCSS This deprecated API should no longer be used, but will probably still work.
針對產生的 markup 使用 HTML 標籤或 CSS。此指令需要一個布林值 true/false 作為引數值。
注意:這個引述在邏輯上是反向的(舉例:使用 false 會使用 CSS ,反之使用 true 則使用 HTML 且 Internet Explorer 不支援。這個指令已經被棄用並由 styleWithCSS 取而代之。
styleWithCSS
取代 useCSS 的指令。 true 會在 markup 修改 / 產生 style 屬性, false 會產生展示用的元素。

範例

一個在 CodePen 上展示如果使用的範例。

規格

規格 狀態 備註
execCommand

瀏覽器相容性

BCD tables only load in the browser

相關資訊