在Chrome中的非聚焦输入元素中捕获日语输入

时间:2015-07-27 23:44:45

标签: javascript jquery html internationalization keydown

当用户在<input>元素未聚焦时开始输入时,我希望用户的输入进入文本输入元素。我通过在keydown处理程序中调用$input.select()来实现此目的,如果输入尚未集中。

这适用于英语,但Chrome 44和Firefox 39之间的日语输入行为不同(在OSX中;我还没有在Windows中测试过)。我的目标是在Chrome中实现Firefox的行为。

重新执行

  1. 在键盘首选项中添加日语输入源,然后将键盘切换到Hiragana
  2. 确保输入未聚焦
  3. 输入 e i g o
  4. 预计 (适用于Firefox但不适用于Chrome)

    输入值为&#34;えいご&#34;,允许我选择&#34;英语&#34;从下拉列表。

    观察到的

    输入值为&#34; eいご&#34;

    &#13;
    &#13;
    $(function() {
        var $input = $('input:first');
    
        $(window).on('keydown', function(e) {
            if ($input.is(':focus')) {
                return;
            }
            $input.select();
        });
    });
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" />
    &#13;
    &#13;
    &#13;

1 个答案:

答案 0 :(得分:1)

答案:这是铬的一个错误;截至2015年12月无法修复。

看起来它与这个铬虫有关:https://code.google.com/p/chromium/issues/detail?can=2&start=0&num=100&q=ime&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified&groupby=&sort=&id=551716

W3c草案API http://www.w3.org/TR/ime-api/可以提供帮助,但是看一下http://caniuse.com/#search=inputmethod,解决方案听起来不太可能有一段时间。