Bing maps控件(Microsoft.Maps.Map)是否提供用于从选项卡顺序中删除自身(及其子控件)的API?
或者,地图渲染后,是否可以使用适当的回调(渲染后)在所有元素上递归设置tabIndex?
NB :我已经看到在构建时有一些选项,用于指定是否渲染地图类型选择器/定位我按钮/缩放按钮。但是,假设我们要渲染这些控件,只需将它们从制表符顺序中删除即可。
答案 0 :(得分:0)
我设法使用MutationObserver实现了它:
var mapElem = document.getElementById("map");
let deferredClearTabIndexEvent: number | undefined;
if (mapElem !== null) {
var config = { attributes: true, childList: true, subtree: true };
var callback = () => {
if (deferredClearTabIndexEvent === undefined) {
deferredClearTabIndexEvent = window.setTimeout(() => {
var elements = mapElem!.querySelectorAll("a, button, input, select, textarea, [tabindex]")
for (var i=0; i<elements.length; i++) {
elements[i].setAttribute("tabIndex", "-1");
}
deferredClearTabIndexEvent = undefined;
}, 0);
}
};
var observer = new MutationObserver(callback);
observer.observe(mapElem, config);
}