Javascript dojo方面和按键

Javascript dojo方面和按键,javascript,event-handling,dojo,dom-events,Javascript,Event Handling,Dojo,Dom Events,有没有办法用dojo/aspect和aspect.after捕获按键事件 我使用的是第三方Javascript API(ESRI JS API v3.4),它提供了一个用于在地图上绘制图形的小部件。draw toolbar小部件有一个onDrawEnd事件,该事件提供绘制图形对象的形状作为参数。我需要确定用户在使用此小部件绘制地图时是否按了CTRL或SHIFT键,但我使用aspect.after(drawingToolbar,“onDrawEnd”,myhandlerfunction,true)

有没有办法用
dojo/aspect
aspect.after
捕获按键事件

我使用的是第三方Javascript API(ESRI JS API v3.4),它提供了一个用于在地图上绘制图形的小部件。
draw toolbar
小部件有一个
onDrawEnd
事件,该事件提供绘制图形对象的形状作为参数。我需要确定用户在使用此小部件绘制地图时是否按了
CTRL
SHIFT
键,但我使用
aspect.after(drawingToolbar,“onDrawEnd”,myhandlerfunction,true)
来连接绘图事件

我知道如何确定键是否被按下的唯一方法是使用
事件
对象,这在使用
方面
时不提供,就像使用
dojo/on
一样


你知道我如何判断这里是否按下了键吗?

dojo.aspect无法连接到事件,只能连接到函数。但是,您应该能够看到处理该事件的函数,并窃取其参数

aspect.after(drawingToolbar, "someHandlerFunctionWithTheEventArg", 
    function(args){
      // access the event from the args here
    }, true);

也许你不应该走另一条路去追赶一个关键事件

这就是我在文本框中捕捉“回车”事件的方式。当按下Enter键时,将调用函数zoomToAnlage()。重要的是,此事件侦听器已在ini阶段加载。 当然,这并不能完全解决你的问题,但也许它显示了一种处理问题的方法

    function initKielAnlagenNummernSuchen(){

    queryTaskAnlagenNummern = new esri.tasks.QueryTask(restServicesLocation + NameSearchService + "/MapServer/23");

    queryallAnlagenNummern = new esri.tasks.Query();
    queryallAnlagenNummern.returnGeometry = true;
    queryallAnlagenNummern.outFields = ["ANLAGE"];

    require(["dojo/keys","dojo/dom","dojo/on"], function(keys, dom, on){
        on(dom.byId("selectAnlagenNummer"), "keypress", function(evt){
            var charOrCode = evt.charCode || evt.keyCode;
            if (charOrCode == keys.ENTER) {
                zoomToAnlage();
            }
        });
    });
}

以下是dojo/keys的链接:
你好,米里亚姆

谢谢你的回答。我试了一下,但没用。如果我在
方面中使用
receiveArguments=true
,则返回一个对象,该对象表示在地图上绘制的图形。如果我不添加
receiveArguments
参数,我会得到一个只包含单个对象的参数数组。我开始认为我应该在连接到绘图的同时连接到地图的
按键
事件。