Opened 9 years ago
Last modified 8 years ago
#14329 review Bug
Typing Japanese with Windows IME on IE 11 does not fire change events
Reported by: | Nick M | Owned by: | kkrzton |
---|---|---|---|
Priority: | Nice to have (we want to work on it) | Milestone: | |
Component: | General | Version: | 4.4.4 |
Keywords: | Cc: |
Description
Steps to reproduce
- Set up a Japanese IME keyboard on Windows (instructions here http://jlptbootcamp.com/2012/02/how-to-type-in-japanese-with-the-microsoft-ime-on-windows/)
- Go to nightly ckeditor build in IE 11
- Add a simple change hander in the console window that logs change events.
CKEDITOR.instances.editor.on('change', function(e) { console.log(this.getData()); })
- Change your input type to Hiragana and type something in like "Arigato". Press space to open the dropdown selector and pick one of the options or just press "enter" to confirm the word.
Expected result
When you confirm your composite word, the change event should fire and log the word typed.
Actual result
The change event does not fire.
Other details (browser, OS, CKEditor version, installed plugins)
Chrome seems to fire change events on nearly every keypress in IME mode. Firefox only does it when a word is "confirmed." I think Firefox has the right behavior, but really either is fine as long as the change event eventually fires. I have not tried IE10 or below, but I'm betting they have the same issues.
Change History (16)
comment:1 Changed 9 years ago by
comment:2 Changed 9 years ago by
Component: | Core : Undo & Redo → General |
---|---|
Keywords: | IME change removed |
Status: | new → confirmed |
Version: | 4.5.7 (GitHub - master) → 4.4.4 |
comment:3 Changed 9 years ago by
Milestone: | → CKEditor 4.5.8 |
---|
comment:4 Changed 9 years ago by
Owner: | set to kkrzton |
---|---|
Status: | confirmed → assigned |
comment:5 Changed 9 years ago by
Considering also canceling composition (so the word is not inserted) or blurring editor while composition is active:
- In Blink, due to firing change on every key press, it is also fired for keys which cancels composition (backspace, delete, esc). Change is not fired when during composition editor loses focus (which means end of composition and word/s are inserted - native compositionend and input events are fired).
- In FF, change event is only fired after inserting word, but it is also fired when canceling composition (backspace, delete, esc) - same as in Blink. When losing focus during composition, FF behaves same as Blink.
- In IE (tested on IE11) change event is not fired. Native events like compositionend and textinput are fired when composited word is inserted or canceled and are also fired when editor loses focus during composition.
Native events firing tested here. Also Japanese keyboard on Ubuntu.
comment:6 Changed 9 years ago by
Reported a bug in IE11, which is unfortunately connected with typing Japanese inside contenteditable. Some workaround may be needed in future. https://connect.microsoft.com/IE/feedback/details/2322126/ie11-incorrect-number-of-keyup-events-for-enter-fired-after-inserting-japanese-symbols-inside-contenteditable-element
comment:7 Changed 9 years ago by
Status: | assigned → review |
---|
Changes in t/14329.
Introduce fix for IE using compositionend event to handle end of composition. Added also workarounds for IE8 and Edge.
comment:8 Changed 9 years ago by
Milestone: | CKEditor 4.5.8 → CKEditor 4.5.9 |
---|
comment:9 Changed 9 years ago by
Milestone: | CKEditor 4.5.9 → CKEditor 4.5.10 |
---|
comment:10 Changed 9 years ago by
I'm also being affected by this issue. It has been set to review 3 months ago, any estimate of when it will actually be ready to roll out? Thank you!
comment:11 Changed 9 years ago by
@taeiou We're currently working on many CKEditor-related projects. And are not able to push all the fixes, however this issue having a milestone shows that it's on our track. You can get updates by following this ticket.
Your comment already is a good sign for us that there is a demand for this feature, so we are taking this into consideration - but currently we're not able to guarantee any precise ETA. If you're commited to this issue, and would like it to be solved asap, you could always contact CKSource for possible options on prioritizing this ticket.
comment:12 Changed 8 years ago by
Milestone: | CKEditor 4.5.10 → CKEditor 4.5.11 |
---|
Moving tickets to the next milestone.
comment:13 Changed 8 years ago by
Milestone: | CKEditor 4.5.11 → CKEditor 4.6.1 |
---|
comment:14 Changed 8 years ago by
Milestone: | CKEditor 4.6.1 → CKEditor 4.6.2 |
---|
Moving to 4.6.2 minor release, as 4.6.1 is mostly about polishing 4.6.0.
comment:15 Changed 8 years ago by
Simple workaround is to listen to the compositionend event. Should be something like this: CKEDITOR.instances.editor.editable().$.addEventListener('compositionend', yourhandlerfunction, false); Hope this helps.
comment:16 Changed 8 years ago by
Milestone: | CKEditor 4.6.2 |
---|---|
Priority: | Normal → Nice to have (we want to work on it) |
Moving to the nice to have list.
The change event is composed of many other events and it is possible there is some room for improvement. It would be nice to unify that behaviour.
NOTE: I have set version 4.4.4 because starting from that version Blink reports every character pressed.