Клуб пользователей блока «Поделиться»

в API кнопок не работают схемы оформления

Добрый день. Если позволите, вначале опишу свою задачу, потом проблему текущую и костыль другой задачи

Итак, у меня на странице открываются картинки в лайтбоксе. Я решил сделать возможность поделиться изображением (с чем столкнулся и как решил после вопроса). Ввиду особенности формирования src изображения, самым простым путем было после всех вызовов процедур, под картинкой вызывать API кнопок. И вот все бы хорошо, ночь пролетает незаметно, НО при применении параметра в коде 

theme: {		
color-scheme: 'whiteblack',
services: 'messenger,vkontakte,facebook,odnoklassniki,telegram,twitter,viber,whatsapp',
size: 's',
.......

В консоль падает ошибка Uncaught SyntaxError: Unexpected token '-' на строку color-scheme: 'whiteblack' и, что логично, кнопки не работают. Если убрать оформление то все грузится, только что кнопки дефолтные в оформлении. Ни "color-scheme": 'whiteblack', ни 'color-scheme': 'whiteblack', ни colorscheme: 'whiteblack' не помогает, тема не срабатывает. А уж любимая javascript color + '-' + scheme и вовсе вываливается. Причем, в документации указано именно color-scheme, остальные параметры работают. В чем может быть причина и как обойти ее?

Теперь про поделиться изображением. Дело в том, что моя цель была именно передать jpg картинку. И я вижу, что такой вопрос часто возникает. Посидев и поэкспериментировав, я уже был в отчаянии, параметр image хоть и верно понимал, но передавалась все равно все статья со всеми картинками. И, хотя, в разборе url и description и image передаются правильно, тот же vk формировал og из head сайта ну и по сути основную задачу не решало. Я решил ее с помощь передачи url в виде разбора src картинки, а в title вставил уже адрес сайта. Не знаю, на сколько это правильное решение, но вот мой код, может кому пригодиться, если не будет считаться вредным советом :-) 

Ya.share2('yandex_share_spec', {
content: {
url: window.location.protocol + '//' + window.location.hostname +  filename,
title:  document.getElementsByTagName("title")[0].innerHTML + ' // здесь любое описание, очень выигрышно смотрится в телеграмме, например - целиком статья доступна по адресу: ' + window.location.href,
description: 'Фото с сайта' + window.location.href,
image: filename, 
}, theme: {		
color-scheme: 'whiteblack', //ВОТ ЭТО НЕ РАБОТАЕТ :-(
services: 'messenger,vkontakte,facebook,odnoklassniki,telegram,twitter,viber,whatsapp',
size: 's',
curtain: true
}
});

Я просто счастлив, что ночь прошла не зря и я смог это реализовать и решил с вами поделиться, даже если код ужасен. Прошу помочь с темами оформления.

5 комментариев
Сергей Тощилин
Сотрудник Яндекса27 февраля 2021, 16:33
Добрый день!


Спасибо, что написали
Действительно, есть такая проблема. Почему-то в документации пропустили именно для этого параметра... Остальные параметры в документации описаны в camelCase стиле, colorScheme тоже по идее должен передаваться так
Сергей Тощилин,
Да, спасибо большое, так работает 
theme: {
colorScheme: 'whiteblack',
....
}
Сергей Тощилин
Сотрудник Яндекса1 марта 2021, 11:21
Поправим документацию в ближайшее время
Сергей Тощилин
Сотрудник Яндекса4 марта 2021, 17:47
Поправили документацию
Сергей Тощилин,
Спасибо большое