「DOM3級事件」規範中引入了一個新事件,名叫textInput。根據規範,當用戶在可編輯區域中輸入字符時,就會觸發這個事件。這個用於替代keypress的textInput事件的行爲稍有不一樣。 區別之一就是任何能夠得到焦點的元素均可以觸發kepress事件,但只有可編輯區域才能觸發textInput事件。 區別之二extInput事件只會在用戶按下可以輸入實際字符的鍵時纔會被觸發,而keypress事件則在按下那些可以影響文本顯示的鍵時也會觸發(例如退格鍵)。 因爲textInput事件主要考慮是字符,所以它的event對象中還包含一個data屬性,這個屬性的值就是用戶輸入的字符(而非字符編碼)。換句話說,用戶在沒有按上檔鍵的狀況下按下了S鍵,data的屬性就是「s」,而若是在按住上檔鍵時按下該鍵,data的值就是「S」。 如下是一個使用textInput事件的例子: var EventUtil = { addHandler: function (element, type, handler) { } else {編碼 element["on" + type] = handler; EventUtil.addHandler(textbox, "textInput", function (event) {orm event = EventUtil.getEvent(event); });事件 複製代碼ci 在這個例子中,插入到文本框中的字符會經過一個警告框顯示出來。目前只有Safari3和Chrome瀏覽器支持textInput事件。所以,在跨瀏覽器開發中,可能還沒法使用這個事件 |