您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Display the like and dislike counts next to the arrow buttons
当前为
// ==UserScript== // @name 9gag - Return dislike count // @namespace https://github.com/Procyon-b // @version 0.2.1 // @description Display the like and dislike counts next to the arrow buttons // @author Achernar // @match https://9gag.com/* // @run-at document-start // @grant none // ==/UserScript== (function() { "use strict"; // JSON.parse var JP=JSON.parse; JSON.parse=function(){ var r=JP(...arguments); if (r && r.data && r.data.posts) { for (let v,k=0; v=r.data.posts[k]; k++) { posts[v.id]={id: v.id, up: v.upVoteCount, down: v.downVoteCount}; } } return r; } var posts={}, done=false; function init() { if (done) return; else done=true; var obs = new MutationObserver(function(muts){ for (let mut of muts) { if (mut.addedNodes.length) { getBtnV(mut.target); break; } } }); obs.observe(document.body, {subtree: true, childList: true} ); addSt(); getBtnV(); } if (document.readyState != 'loading') init(); else { document.addEventListener('DOMContentLoaded', init); window.addEventListener('load', init); } function getBtnV(r=document) { var a=r.querySelectorAll(':first-child.btn-vote:not(._fixed), .post-vote:not(.fixed)'); for (let n of a) { n.classList.add('_fixed'); let p=n.closest('article'); if (p) { let id= (p.id || '').split('-').pop(); if (!id) { // mobile let e=p.querySelector(':scope > header > a[href^="/gag/"]'); if (e) id=e.href.split('/').pop(); } if (posts[id]) { n.classList.add('_exists'); n.style='--upvotes: "'+posts[id].up+'"; --downvotes: "'+posts[id].down+'";'; } } } } var ST, iST=` ._fixed._exists li::before, ._fixed._exists .post-vote__btn.upvote::before { content: var(--upvotes); } ._fixed._exists li::after, ._fixed._exists .post-vote__btn.downvote::after { content: var(--downvotes); } ._fixed._exists .post-vote__btn.upvote, ._fixed._exists .post-vote__btn.downvote { display: flex; } `; function addSt() { if (!iST) { document.documentElement.appendChild(ST); return; } try { ST=document.createElement('style'); document.documentElement.appendChild(ST); ST.textContent=iST; iST=''; }catch(e){ setTimeout(addSt,0); } } })();