Новая версия скрипта добавляет кнопки перехода в профиль и на главной странице Клуба. Добавлена версия скрипта для установки в расширение, что позволит скрипту запускаться автоматически.
ID пользователя берётся из аватарки, поэтому для пользователей без аватарки кнопка не добавляется (ибо у них этого самого ID в адресе аватарки нет, больше взять его неоткуда). За находку информации об UserID для реализации скрипта на главной странице Клуба благодарим Семёна Федотова.
Код для букмарклета:
javascript: var a = []; var b; var prokr = 0; if(document.getElementsByClassName('b-post_yablogs-club _init').length > 0){prokr = (document.getElementsByClassName('b-post_yablogs-club _init').length/20)-1;} var Interval; function cl(){ b=undefined; a = document.getElementsByClassName('b-post_yablogs-club _init'); var temp; var n = 0; var i; for(var j = prokr*20; j < a.length; j++){ temp = a[j].getElementsByClassName('b-round-avatar__image')[0].src; n=0; for(i = 0; i<100; i++){ if(temp[i]=='/')n+=1; if(n==5)break; } if(i < 99) { i+=1; b=temp[i]; for(i+=1; i<100; i++){ if(temp[i]!='-')b+=temp[i];else break; } } if(!((b === undefined) || (b === null) || (isNaN(b)))){m = a[j].getElementsByClassName('b-post_yablogs-club__date'); if (!((m[0] === null) || (m[0] === undefined) || (b == 0))){ m[0].insertAdjacentHTML('afterEnd', '<div class="y-button_islet _init" data-block="y-button" style="margin-left: 15px"><a class="y-button_islet__text" href="https://n.maps.yandex.ru/#!/users/'+b+'" target="_blank">Перейти в профиль</a></div>');}}} if(a.length != 0){document.getElementsByClassName('b-post-list_yablogs__more')[0].onclick = function(){Interval = setInterval(function(){if(a.length > (prokr*20)+20){prokr+=1; prom();}},10)};}} function prom(){clearInterval(Interval); cl();} a = document.getElementsByClassName('b-comment-group_yablogs _init'); for(var j = 0; j < a.length; j++){ b = JSON.parse(a[j].dataset.options).options.authorId; if(!((b === undefined) || (b === null) || (isNaN(b)))){m = a[j].getElementsByClassName('b-comment-group_yablogs__date'); if (!((m[0] === null) || (m[0] === undefined))){ m[0].insertAdjacentHTML('afterEnd', '<div class="y-button_islet _init" data-block="y-button" style="margin-left: 15px"><a class="y-button_islet__text" href="https://n.maps.yandex.ru/#!/users/'+b+'" target="_blank">Перейти в профиль</a></div>');}}} b=undefined; a = document.getElementsByClassName('b-article_yablogs-not-draft _init'); if ((a[0] === null) || (a[0] === undefined))a = document.getElementsByClassName('b-article_yablogs-draft _init'); if(!((a[0] === null) || (a[0] === undefined)))b = JSON.parse(a[0].dataset.options).options.post.author.id; if(!((b === undefined) || (b === null) || (isNaN(b)))){var m = a[0].getElementsByClassName('b-article_yablogs-not-draft__date'); if ((m[0] === null) || (m[0] === undefined))m = a[0].getElementsByClassName('b-user_yablogs__user-data'); m[0].insertAdjacentHTML('afterEnd', '<div class="y-button_islet _init" data-block="y-button" style="margin-left: 20px"><a class="y-button_islet__text" href="https://n.maps.yandex.ru/#!/users/'+b+'" target="_blank">Перейти в профиль</a></div>');} cl();
Ссылка на версию скрипта для использования через браузерное расширение:
https://greasyfork.org/ru/scripts/371085-ссылки-на-профиль-в-клубе-народной-карты-яндекс
Я использую расширение Tampermonkey (ссылка на него в интернет-магазине Chrome).
P. S. Если кто-то пропустил обновление скрипта для добавления привязок — код был обновлён в теме 3.08: https://yandex.ru/blog/narod-karta/skript-bukmarklet-dlya-sozdaniya-obektov-privyazok-v-narodnoy-karte Не забудьте обновиться!)