- PR -

IME-MODE:disabled で カナ入力ONのとき

1
投稿者投稿内容
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2009-04-01 13:47
IME-MODE:disabled で IMEのカナボタンを押下すると
半角カナが入力できるのですが、これを止めたい。

以下にこれを止めるコードを貼り付けたが、これが正しい
作法なのかいまいち不明なんです。VK_KANA の判定とその
他に何か判定するべきコードはありますか?

コード:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE></TITLE>
</HEAD>
<BODY>

<script>
var count = 0;

var $ID = function(id) { return document.getElementById(id) }

var VK_KANA = 0x15; //21 &H15

function keyDownEvent() {

var o = event.srcElement;

var keyCode = event.keyCode;

var ch = String.fromCharCode(keyCode);

window.status = ch + "::" + keyCode;

if (keyCode == 21) { //IME の [KANA] ボタン及び設定変更
$ID("DEBUG").innerHTML = "<b>" + (++count) + "</b>";
window.focus();
setTimeout(function() { o.focus(); }, 10);
}

}

</script>
あ<input type=text style="ime-mode:disabled;" onkeydown="keyDownEvent()">
い<input type=text style="ime-mode:disabled;">
う<input type=text style="ime-mode:disabled;">
え<input type=text style="ime-mode:disabled;">
<div id="DEBUG" style="border:outset 2px lightgrey"></div>
</BODY>
</HTML>




現象再現方法:
「い」入力欄でキーボード [A] を数回押下。
IMEのカナボタン押下。
キーボード [A] を数回押下。

「aaaチチチ」 となる。

暫定再発防止方法の適用後:
「あ」入力欄でキーボード [A] を数回押下。
IMEのカナボタン押下。
キーボード [A] を数回押下。

「aaaaaa」 となる。

×「正しい作法」
○「WEBアプリでIMEの細かい操作なんで作法も何も無い」

よろしくお願いします。



[ メッセージ編集済み 編集者: ぴあちゃん 編集日時 2009-04-01 13:49 ]
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2009-04-02 01:39
解決しました。

上記HTMLを使わずに現象が再現する環境とHTMLは以下の通りです。
html//
コード:

<input type=text /><input type=text style="ime-mode:disabled" />


で、環境は、WindowsXP + IME2002 限定。カナ入力モードをデフォルトに
設定し、半角カナ入力可能な状態に設定しておく。
IEの最初のテキストBOXにフォーカスINし、次のテキストBOXにフォーカスIN。
で、キーボードの半角/全角キー横に並ぶ、数字キーを123と押下すると、
「ヌフア」と入ります。

で、これを解消するには、以下のようにします。
コード:

<input type=text /><input type=text style="ime-mode:inactive" />



こんだけ。inactive にすることで、カナ入力モード中のIME2002でも、正常に
123は半角数字123が入力できるようになります。

うーむ。。。こんなアホらしい障害ばっかりで少々うんざり。。

以上


#最初の質問内容とこの「解決」の要旨が全然違うのは、当初IME2002という
#ことが全然不明瞭であったため。なんせ、再現する環境構成一切教えてくれ
#ないんだもんな・・・




[ メッセージ編集済み 編集者: ぴあちゃん 編集日時 2009-04-02 01:43 ]
1

スキルアップ/キャリアアップ(JOB@IT)