Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按键don';我不能在一些安卓设备上工作_Javascript_Android_Jquery_Dom Events_Jquery Terminal - Fatal编程技术网

Javascript 按键don';我不能在一些安卓设备上工作

Javascript 按键don';我不能在一些安卓设备上工作,javascript,android,jquery,dom-events,jquery-terminal,Javascript,Android,Jquery,Dom Events,Jquery Terminal,我已经在jQuery终端上安装了,我几乎已经修复了它,它可以在我测试过的设备上工作。但在某些设备上,按键事件似乎根本不会触发(它应该会回显按键) 在移动设备上,我的代码将焦点放在文本区域(我恢复了剪贴板),所以虚拟键盘是打开的 我在keydown中有以下代码: function keydown_event(e) { ... if (enabled) { ... } else { // this get

我已经在jQuery终端上安装了,我几乎已经修复了它,它可以在我测试过的设备上工作。但在某些设备上,按键事件似乎根本不会触发(它应该会回显按键)

在移动设备上,我的代码将焦点放在文本区域(我恢复了剪贴板),所以虚拟键盘是打开的

我在keydown中有以下代码:

function keydown_event(e) {
     ...
     if (enabled) {
        ... 
            } else {
                // this get fired while typing
                $.terminal.active().echo('keydown else');
                prevent_keypress = false;
                return;
            }
            // this will prevent for instance backspace to go back one page
            prevent_keypress = true;
            $.terminal.active().echo('keydown return false');
            return false;
        }
     ...
     }
}
按键时:

    var doc = $(document.documentElement || window);
    doc.bind('keypress.cmd', function(e) {
        var result;
        if (e.ctrlKey && e.which === 99) { // CTRL+C
            return;
        }
        // this line never get fired while typing
        $.terminal.active().echo('keypress');
        if (prevent_keypress) {
            $.terminal.active().echo('prevent');
            return;
        }
        if (!reverse_search && $.isFunction(options.keypress)) {
            result = options.keypress(e);
        }
        if (result === undefined || result) {
            ...
            self.insert(String.fromCharCode(e.which));
            ...
        } else {
            return result;
        }
    }).bind('keydown.cmd', keydown_event);
任何人都有同样的问题,并且知道如何解决它,这对我来说很难,因为它在我的设备上工作

更新我已经创建了,而且似乎根本没有触发按键。

我通过检测按键是否未触发并从剪贴板获取值(对于移动内容,它始终与终端输入相同),设法解决了(几乎)问题

var no_keypress;
doc.bind('keydown.cmd', function(e) {
    no_keypress = true;
    ...
}).bind('keypress.cmd', function(e) {
    no_keypress = false;
    ...
}).bind('keyup.cmd', function() {
    if (no_keypress) {
        // Some Androids don't fire keypress - #39
        self.set(clip.val());
    }
});