Greasy Fork 还支持 简体中文。

v2ex filter heart comment

仅显示有红心的留言

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name         v2ex filter heart comment
// @namespace    
// @version      0.1.1
// @description  仅显示有红心的留言
// @author       zrf
// @match        *://*.v2ex.com/t/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    var isFilterHeartComment = false;

    var el = document.getElementsByClassName('topic_buttons')[0]

    var elChild = document.createElement('a');

    elChild.setAttribute('href', 'javascript:void(0);')
    elChild.setAttribute('class', 'tb')
    elChild.setAttribute('id', 'clickFilterBtn')

    elChild.innerHTML = isFilterHeartComment ? '显示全部留言' : '仅显示红心留言';

    el.appendChild(elChild);

    document.getElementById('clickFilterBtn').onclick = clickFilterBtn;

    function clickFilterBtn() {

        isFilterHeartComment = !isFilterHeartComment
        if (isFilterHeartComment) {
            elChild.innerHTML = '显示全部留言'
        } else {
            elChild.innerHTML = '仅显示红心留言'
        }


        // 获取全部元素
        var allComment = document.querySelectorAll('div[id^="r_"]')

        if (isFilterHeartComment) {
            allComment.forEach(function(value, index) {
                if (!value.querySelector('.small.fade')) {
                    value.setAttribute('style', 'display: none')
                }
            });
        } else {
            allComment.forEach(function(value, index) {
                value.setAttribute('style', 'display: block')
            });
        }
    }
})();