您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
知乎原创过滤器
// ==UserScript== // @name Zhihu Original Filter // @namespace http://tampermonkey.net/ // @version 0.2 // @description 知乎原创过滤器 // @author xi2008wang // @match https://www.zhihu.com/follow // @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js // @run-at document-end // @grant none // ==/UserScript== var $ = $ || window.$; var original_set = ['回答了', '发表了', '添加了', '专栏更新了']; var zhihu_filter_sw = false; function waitForKeyElements( selectorTxt, /* Required: The jQuery selector string that specifies the desired element(s). */ actionFunction, /* Required: The code to run when elements are found. It is passed a jNode to the matched element. */ bWaitOnce, /* Optional: If false, will continue to scan for new elements even after the first match is found. */ iframeSelector /* Optional: If set, identifies the iframe to search. */ ) { var targetNodes, btargetsFound; if (typeof iframeSelector == "undefined") { targetNodes = $(selectorTxt); } else { targetNodes = $(iframeSelector).contents().find(selectorTxt); } if (targetNodes && targetNodes.length > 0) { btargetsFound = true; /*--- Found target node(s). Go through each and act if they are new. */ targetNodes.each(function() { var jThis = $(this); var alreadyFound = jThis.data('alreadyFound') || false; if (!alreadyFound) { //--- Call the payload function. var cancelFound = actionFunction(jThis); if (cancelFound) { btargetsFound = false; } else { jThis.data('alreadyFound', true); } } }); } else { btargetsFound = false; } //--- Get the timer-control variable for this selector. var controlObj = waitForKeyElements.controlObj || {}; var controlKey = selectorTxt.replace(/[^\w]/g, "_"); var timeControl = controlObj[controlKey]; //--- Now set or clear the timer as appropriate. if (btargetsFound && bWaitOnce && timeControl) { //--- The only condition where we need to clear the timer. clearInterval(timeControl); delete controlObj[controlKey] } else { //--- Set a timer, if needed. if (!timeControl) { timeControl = setInterval(function() { waitForKeyElements(selectorTxt, actionFunction, bWaitOnce, iframeSelector ); }, 300 ); controlObj[controlKey] = timeControl; } } waitForKeyElements.controlObj = controlObj; } function zhihu_filter_all(feeds) { feeds.each(function() { var feed = $(this); zhihu_filter(feed); }); } function zhihu_filter(feed) { var feed_data = feed.find('.FeedSource-firstline').text(); var found = false; $.each(original_set, function(idx, original) { // 遍历找出原创feed if (feed_data.indexOf(original) >= 0) { found = true; return; } }); // 隐藏不关心feed if (zhihu_filter_sw && !found) { feed.parent().hide(); } else { feed.parent().show(); } // 广告feed也隐藏 $('.TopstoryItem--advertCard').hide(); } function append_switch() { var b = $('<button id="zhihu_filter_sw" style="position: fixed;top: 60px;right: 20px;">全部</button>'); b.prependTo('body'); $('#zhihu_filter_sw').click(function() { if ($(this).text() == "全部") { // 单击时全部过滤 $(this).text("原创"); zhihu_filter_sw = true; zhihu_filter_all($('.Feed')); } else { $(this).text("全部"); zhihu_filter_sw = false; zhihu_filter_all($('.Feed')); } }); } (function() { 'use strict'; // 附加过滤切换按钮 append_switch(); // 开始实时过滤 waitForKeyElements( ".Feed", zhihu_filter ); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址