您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
制作知乎专栏方便打印的版本
// ==UserScript== // @name Clean zhuanlan.zhihu // @namespace http://tampermonkey.net/ // @version 0.1 // @description 制作知乎专栏方便打印的版本 // @author You // @match https://zhuanlan.zhihu.com/* // @grant none // @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js // @require https://greasyfork.org/scripts/31940-waitforkeyelements/code/waitForKeyElements.js?version=209282 // ==/UserScript== (function() { 'use strict'; var staticClassNames = [ 'Sticky ColumnPageHeader', 'Sticky RichContent-actions', ]; var AJAXClassNames = [ 'Sticky ColumnPageHeader', 'CommentList', 'Recommendations-List', 'Recommendations-Main', 'Comments-container', ]; // jQuery remove/empty does not work. // from stackoverflow: // https://stackoverflow.com/questions/3387427/remove-element-by-id Element.prototype.remove = function() { this.parentElement.removeChild(this); } NodeList.prototype.remove = HTMLCollection.prototype.remove = function() { for(var i = this.length - 1; i >= 0; i--) { if(this[i] && this[i].parentElement) { this[i].parentElement.removeChild(this[i]); } } } // static staticClassNames.forEach(function(name) { var elems = document.getElementsByClassName(name); elems.remove(); console.log(name); }); // dynamic AJAXClassNames.forEach(function(name) { waitForKeyElements('.'+name, function(elem){ elem.empty();}); }); })();