模擬按鍵'ESC',解決韓語等輸入法對輸入框(codemirror)的支援
阿新 • • 發佈:2021-08-31
示例:
on(div, "compositionend", function (e) { if (this$1.composing) { if (e.data != this$1.composing.data) { this$1.readFromDOMSoon() } this$1.composing.done = true //simulate 'ESC', ex.Korean var keyboardEventInit = { key: "Escape", code: "Escape", keyCode: 27, which: 27, composed: true, bubbles:true }; var evtObj = new KeyboardEvent('keydown', keyboardEventInit); e.target.dispatchEvent(evtObj); } })
輸入法事件 CompositionEvent
DOM 介面 CompositionEvent
表示使用者間接輸入文字(如使用輸入法)時發生的事件。此介面的常用事件有compositionstart
, compositionupdate
和 compositionend
KeyboardEvent
KeyboardEvent
物件描述了使用者與鍵盤的互動。 每個事件都描述了使用者與一個按鍵(或一個按鍵和修飾鍵的組合)的單個互動;事件型別keydown
, keypress
與 keyup
用於識別不同的鍵盤活動型別。
注意:
KeyboardEvent
只在低級別提示使用者與一個鍵盤按鍵的互動是什麼,不涉及這個互動的上下文含義。 當你需要處理文字輸入的時候,使用input (en-US) 事件代替。使用者使用其他方式輸入文字時,如使用平板電腦的手寫系統或繪圖板, 鍵盤事件可能不會觸發。
EventTarget.dispatchEvent
向一個指定的事件目標派發一個事件, 並以合適的順序同步呼叫目標元素相關的事件處理函式。標準事件處理規則(包括事件捕獲和可選的冒泡過程)同樣適用於通過手動的使用dispatchEvent()
方法派發的事件。
語法
cancelled = !target.dispatchEvent(event)
引數
event
是要被派發的事件物件。target
被用來初始化 事件 和 決定將會觸發 目標.
返回值
- 當該事件是可取消的(cancelable為true)並且至少一個該事件的 事件處理方法 呼叫了
Event.preventDefault()
,則返回值為false
;否則返回true
。