自分とこの独自仕様じゃんかよー(悪口)

webサイトの入力フォームで、ime-modeに「active」を使っていると、IE11とIME2012の組み合わせだと、半角カナになってしまうとかどうとかあるらしいですよ。
http://support.microsoft.com/kb/2931749/ja
マジか。
確認したらマジだったので、半角カナはねーわということで急遽対応することになりました。
でもcss全部直すのめんどくさいので(IE11が対応してくれたら元に戻したいし)、どがんと一気にできないかなーということで、ime-modeが「active」になっているときにjavascriptで「auto」に書き換えることにしました。

$(function(){
$("input:visible[type!='password'],textarea").each(function(){
var ime = $(this).css('ime-mode');
if (ime == 'active') {
$(this).css('ime-mode', 'auto');
} else {
if (typeof ime == 'undefined') {
var input = $(this).get(0);
if (input) {
try {
ime = input.currentStyle.getAttribute('imeMode');
if (ime == 'active') {
$(this).css('ime-mode', 'auto');
}
} catch(e) {
}
}
}
}
});
});

jQuery1.8.3で動作を確認しています。
IE9~11、Firefox、Chromeで動かしてみた感じでは大丈夫そうです。
これでしばらく様子見です。嫌すぎる。

(追記 2014/05/02)
Chromeでエラー出てました。ひどい。(私の頭が。)
エラーを無視するように追加しました。ひどい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です