Arcgis 热键在地图外工作

arcgis hotkey work outside of map

在页面上制作地图:

function initMap() {
        return require([
                            "esri/map",
                            "esri/layers/ArcGISTiledMapServiceLayer",
                            "esri/layers/ArcGISDynamicMapServiceLayer",
                            "esri/layers/FeatureLayer",
                            "esri/graphic",
                            "esri/symbols/SimpleFillSymbol",
                            "esri/symbols/SimpleMarkerSymbol",
                            "esri/symbols/SimpleLineSymbol",
                            "esri/symbols/TextSymbol",
                            "esri/symbols/Font",
                            "esri/geometry/Circle",
                            "esri/geometry/Polygon",
                            "esri/geometry/Point",
                            "esri/SpatialReference",
                            "esri/geometry/webMercatorUtils",
                            "esri/layers/GraphicsLayer",
                            "dojo/request/script",
                            "dojo/_base/array",
                            "dojo/promise/all", "dojo/Deferred", "dojo/dom", "dojo/on", "dojo/json",
                            "esri/symbols/PictureMarkerSymbol",
                            "esri/symbols/CartographicLineSymbol",
                            "esri/geometry/Polyline",
                            "esri/Color",
                            "dojo/dom-construct",
                            "dojox/charting/Chart",
                            "dojo/domReady!"
        ],
        function (  Map, ArcGISTiledMapServiceLayer, ArcGISDynamicMapServiceLayer, FeatureLayer, Graphic, SimpleFillSymbol,
                    SimpleMarkerSymbol, SimpleLineSymbol, TextSymbol, Font, Circle, Polygon, Point, SpatialReference,
                    webMercatorUtils, GraphicsLayer, script, array, all, Deferred, dom, on, JSON, PictureMarkerSymbol, CartographicLineSymbol, Polyline, Color, domConstruct, Chart) {  // function parameters must be in the same order as requires

            map = new Map("map", {
                center: [99.999, 99.999],
                zoom: 12,
            });
            var mapServiceURL = "http://server.com/arcgis2/rest/services/Common/BASEMAP_BIPD/MapServer";
                map.addLayer(new esri.layers.ArcGISTiledMapServiceLayer(mapServiceURL));
           });
    }

显示正确。使用地图在页面上制作相同的文本框。有时用户使用键盘右侧的数字键盘(靠近 numlock)在文本框中写入任何数字,数字未写入,但地图是开始键盘导航。数字状态下的 Numlock。 不是每次都这样。然后用户单击任何其他文本框和 return 以继续写入数字 - 它写入正确。

如何修复或禁用 arcgis 热键?

(以防万一: 我将卡连接到页面,但是当在页面上的第三方字段中的附加键盘上键入数字时,焦点在此字段上,但卡移动,而不是输入数字(numlock 在正确的位置)。通过多次改变不同领域的重点来治疗它。有什么方法可以禁用热键,或修复这种不健康的行为吗?)

一种解决方案是当用户将焦点放在文本框中时禁用地图键盘导航。然后,当 focus out 时,再次启用它。为此,请使用 the docs:

中的这些函数
map.enableKeyboardNavigation();
map.disableKeyboardNavigation();
map.isKeyboardNavigation;