Я создаю кнопку на карте с помощью следующего кода:
const clusterShowButton = new ymaps.control.Button({ data: {
content: SVG_CLUSTER_SHOW,
title: 'Отключить кластеризацию',
selectOnClick: true,
size: 'small'
}
});
Далее я пытаюсь добавить ей кастомный класс:
clusterShowButton._layout._buttonElement.className += 'my-button';
Во всех остальных браузерах этот метод работает, кроме Internet Explorer 11, потому что там clusterShowButton._layout === null.
Вопросы:
Не завязывайтесь на недокументированные внутренние сущности! Нет никаких гарантий, что ваш код будет работать в другой версии апи, т.к. разметка и стили стандартного макета кнопки не являются документированными и/или стабильными. Так же как и все поля, которых нет в документации, особенно те, которые начинаются с подчеркивания (_layout/_buttonElement). Это не надуманная проблема, например, два года назад дизайн макеты кнопок поменялись.
Вам надо создать свой макет для кнопки реализовав интерфейс ISelectableControlLayout как в примере.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей