SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

ブラウザによって「元に戻す(Ctrl+Z)」の扱いが違う

問題

textarea要素やinput要素など、入力可能な要素の値をJavascriptで変更すると、IEでは、元に戻す(Ctrl+Z)ができなくなるみたい。

ctrl-z disabled

答え

・Firefoxの「元に戻す」は、個々の入力欄でできるようだ。

1) 入力欄Aに入力。
2) 入力欄Bに入力。
3) 入力欄Aで「元に戻す」
→ Aが元に戻る。Bはそのまま。

・IE、Chromeの「元に戻す」は画面全体でできるようだ。

1) 入力欄Aに入力。
2) 入力欄Bに入力。
3) 入力欄Aで「元に戻す」
→ Bから順番に元に戻る。Bを元に戻してからAが元に戻る。


IE、Chromeの、画面全体にわたって元に戻すがおこなわれるパターンで、以下のようにまた動きが分かれる。

1) 入力欄Aに入力。
2) 入力欄Bに入力。
3) 入力欄Cがスクリプトによって値を書き換えられる。
4) 入力欄Aで「元に戻す」
→ IEだと、3が発生したことで、もう元に戻らなくなる。
 Chromeだと、3が発生しても、Bをかつての入力値に元に戻して、Aがかつての入力値に元に戻る。


こんなことで、IEの「元に戻す」ができなくなるのでした。


デモ

以下の入力欄に適当に入力してから、元に戻す(Ctrl+Z)をお試しください

A
B
C
D

← フォーム内でキーボード操作をするたびにJavascriptでvalueが変わる要素

関連するメモ

コメント