Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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捕获快捷方式并运行一些操作_Javascript_Keyboard_Dom Events - Fatal编程技术网

Javascript捕获快捷方式并运行一些操作

Javascript捕获快捷方式并运行一些操作,javascript,keyboard,dom-events,Javascript,Keyboard,Dom Events,我需要捕获Alt-e或Command-e(例如)来打开除扩展名为Javascript之外的同名文档 为了做到这一点,我需要做这三个步骤 捕捉alt-e或Command-e 获取文档名 替换名称 我可以使用哪些函数/方法来实现它们 document.onkeypress=function(e){ String.fromCharCode(e.charCode) == 'e' and Alt is pressed ?? get document name ?? newwindo

我需要捕获Alt-e或Command-e(例如)来打开除扩展名为Javascript之外的同名文档

为了做到这一点,我需要做这三个步骤

  • 捕捉alt-e或Command-e
  • 获取文档名
  • 替换名称
  • 我可以使用哪些函数/方法来实现它们

    document.onkeypress=function(e){
        String.fromCharCode(e.charCode) == 'e' and Alt is pressed ??
        get document name ??
        newwindow = replace the html to txt ??
        window.open(newwindow,"myWindow");
    }
    
    补充 我无法让苹果的命令正常工作,但我可以用“Control-E”打开TextMate

    var isCtrl = false;
    document.onkeyup=function(e){
        if(e.which == 17) isCtrl=false;
    }
    document.onkeydown=function(e){
        if(e.which == 17) isCtrl=true;
        if(e.which == 69 && isCtrl == true) {
            window.location = "txmt://open/?url=file://%s","myWindow";
            return false;
        }
    } 
    

    有关如何使用按键代码确定是否按下组合(Alt、Cntr、Shift+something)的信息,请参见此示例。它在底部还有一个所有键码的列表

    您还可以使用本机
    event.ctrlKey
    event.shiftKey
    event.altKey
    属性


    P>以上所说的,考虑使用Shift作为你的修饰符,这样它就不会和其他事物发生冲突。CNTR和ALT往往是菜单和滚动使用的常用组合(例如CNTR+鼠标滚动===缩放)。

    有关如何使用键码确定是否按下组合的示例(ALT、CNTR、Shift+something)。它在底部还有一个所有键码的列表

    您还可以使用本机
    event.ctrlKey
    event.shiftKey
    event.altKey
    属性


    P>以上所说的,考虑使用Shift作为你的修饰符,这样它就不会和其他事物发生冲突。CNTR和ALT往往是菜单和滚动使用的常用组合(例如CNTR+鼠标滚动===缩放)。

    事件有一个altKey属性,如果ALT键为true,只需添加

    if(e.altkey && String.fromCharCode(e.charCode) == 'e'){
     DoSomething()
    }
    

    该事件具有altKey属性,如果alt键为true,则只需添加

    if(e.altkey && String.fromCharCode(e.charCode) == 'e'){
     DoSomething()
    }
    

    请不要更改标准快捷方式的语义--Alt+E在大多数浏览器中打开“编辑”菜单,因此不要让它执行其他操作。@casablanca:谢谢您的评论,我只想捕获快捷方式并执行一些操作。请不要更改标准快捷方式的语义--Alt+E在大多数浏览器中打开“编辑”菜单,所以不要让它做其他事情。@casablanca:谢谢你的评论,我只想捕获快捷方式并做一些事情。
    String.fromCharCode
    nice。谢谢你的小片段。
    String.fromCharCode
    nice。谢谢你的小片段。