Javascript 模拟按键按下的Jquery脚本未运行键盘快捷键

Javascript 模拟按键按下的Jquery脚本未运行键盘快捷键,javascript,jquery,keyboard-shortcuts,keypress,simulate,Javascript,Jquery,Keyboard Shortcuts,Keypress,Simulate,我想提前感谢在这方面花费的时间和精力。好的,我有一个脚本,它应该在页面加载3秒后模拟按键按下事件。我希望这个按键可以运行一个键盘快捷键,但它所做的只是按一下键。我怎样才能让它在按下后实际运行快捷方式?不确定这是否可能。再次感谢 <script> setTimeout( function(){ // jQuery plugin. Called on a jQuery object, not directly. jQuery.fn.simulateKeyPress = function

我想提前感谢在这方面花费的时间和精力。好的,我有一个脚本,它应该在页面加载3秒后模拟按键按下事件。我希望这个按键可以运行一个键盘快捷键,但它所做的只是按一下键。我怎样才能让它在按下后实际运行快捷方式?不确定这是否可能。再次感谢

<script>
 setTimeout( function(){
// jQuery plugin. Called on a jQuery object, not directly.
jQuery.fn.simulateKeyPress = function(character) {
  // Internally calls jQuery.event.trigger
  // with arguments (Event, data, elem). That last arguments is very important!
  jQuery(this).trigger({ type: 'keypress', which: character.charCodeAt(0) });
};

jQuery(document).ready( function($) {
  // Bind event handler
  $( 'body' ).keypress( function(e) {
    alert( String.fromCharCode( e.which ) );
    console.log(e);
  });
  // Simulate the key press
  $( 'body' ).simulateKeyPress('z');
});
 }, 3000); //3 seconds

</script>

<script type="text/javascript">
// define a handler
function doc_keyUp(e) {

    // this would test for whichever key is 40 and the ctrl key at the same time
    if (e.ctrlKey && e.keyCode == 122) {
        // call your function to do the thing
        pauseSound();
    }
}
// register the handler 
document.addEventListener('keyup', doc_keyUp, false);
</script>

setTimeout(函数(){
//jQuery插件。在jQuery对象上调用,而不是直接调用。
jQuery.fn.simulateKeyPress=函数(字符){
//内部调用jQuery.event.trigger
//带有参数(事件、数据、元素)。最后一个参数非常重要!
jQuery(this).trigger({type:'keypress',其中:character.charCodeAt(0)});
};
jQuery(文档).ready(函数($){
//绑定事件处理程序
$(“主体”)。按键(功能(e){
警报(String.fromCharCode(e.which));
控制台日志(e);
});
//模拟按键
$(“body”).simulateKeyPress('z');
});
}, 3000); //3秒
//定义一个处理程序
功能文件加密(e){
//这将同时测试40键和ctrl键
如果(e.ctrlKey&&e.keyCode==122){
//调用你的函数来做这件事
pauseSound();
}
}
//注册处理程序
文件。添加的文件列表器('keyup',doc_keyup,false);

您不需要首先添加处理程序……请这样做

jQuery(document).ready(function($) {
    // Bind event handler
    $('body').keypress(function(e) {
        alert(String.fromCharCode(e.which));
    });
});
jQuery.fn.simulateKeyPress = function(character) {
    jQuery(this).trigger({
        type: 'keypress',
        which: character.charCodeAt(0)
    });
};

setTimeout(function() {
    $('body').simulateKeyPress('z');
}, 3000); //3 seconds

要测试的示例:

您没有首先添加处理程序……请这样做

jQuery(document).ready(function($) {
    // Bind event handler
    $('body').keypress(function(e) {
        alert(String.fromCharCode(e.which));
    });
});
jQuery.fn.simulateKeyPress = function(character) {
    jQuery(this).trigger({
        type: 'keypress',
        which: character.charCodeAt(0)
    });
};

setTimeout(function() {
    $('body').simulateKeyPress('z');
}, 3000); //3 seconds

测试示例:

如果您试图启动某些浏览器或系统范围的键盘快捷键,那么这将是一条死胡同-出于安全原因,无法执行。如果可能的话,你可以在互联网上找到一些页面,这些页面(例如)会(通过使用Javascript启动CTRL+B快捷键)将自己添加到你的书签中,而不需要任何请求。

如果你试图启动一些浏览器或系统范围的键盘快捷键,那么这是一条死胡同——出于安全原因,这是无法实现的。如果可能的话,你可以在互联网上找到一些页面,这些页面可以(例如)将自己添加到你的书签中,甚至不用问(通过使用Javascript启动CTRL+B快捷键)。

好的,谢谢你的澄清。我有点想…但我想特别确定…。所以我甚至不能创建一个按钮,人们可以点击它来启动键盘shorcut?不,仅使用Javascript您无法做到这一点。我正在修复将此标记为您所解析的…除了Javascript之外,您建议使用哪种类型的脚本来实现这些目标?非常抱歉,我是想在我的标题中键入jquery,而不是Javascript。好的,谢谢您的澄清。我有点想…但我想特别确定…。所以我甚至不能创建一个按钮,人们可以点击它来启动键盘shorcut?不,仅使用Javascript您无法做到这一点。我正在修复将此标记为您所翻译的…除了Javascript之外,您建议使用哪种类型的脚本来实现这些目标?很抱歉,我是想在我的标题中键入jquery,而不是Javascript。