VK Comments Link

Add a link to comments on the Vk search

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         VK Comments Link
// @namespace    http://alamote.pp.ua/
// @match        https://vk.com/search*
// @grant        none
// @version      1.1
// @description  Add a link to comments on the Vk search
// @icon         http://alamote.pp.ua/staff/alamote-logo.png
// @license      MIT
// ==/UserScript==

/*jshint esversion: 6 */

const setButtons = () => {
    const results = document.querySelectorAll('.groups_row:not(.with-comments)');
    for (let i = 0; i < results.length; i++) {
        const row = results.item(i);
        row.classList.add('with-comments');
        console.log(row.dataset.id);
        const subBtn = row.querySelector('.search_sub_button');
        if (subBtn) {
            subBtn.removeAttribute('onclick');
            subBtn.classList.add('comments-btn');
            subBtn.classList.remove('search_sub_button');
            subBtn.querySelector('span.FlatButton__content').innerHTML = 'Комментарии';
            subBtn.addEventListener('click', () => {
                const handle = window.open(`https://vk.com/wall-${row.dataset.id}?q=type%3Areply`);
                handle.blur();
                window.focus();
            });
        }
        const unsubBtn = row.querySelector('.search_unsub_button');
        if (unsubBtn) {
            unsubBtn.remove();
        }
    }
}


(function() {
    'use strict';

    setButtons();
    setInterval(setButtons, 1000);

})();