您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Display post "Insight" inline instead of in another page
// ==UserScript== // @name Reddit - Inline post insight // @namespace https://github.com/Procyon-b // @version 0.5.7 // @description Display post "Insight" inline instead of in another page // @author Achernar // @match https://www.reddit.com/* // @match https://sh.reddit.com/* // @grant none // @run-at document-start // ==/UserScript== (function() { "use strict"; var started=0; function start() { if (started) return; document.body.addEventListener('click', function(ev){ //console.info({ev}); var t=ev.target, r, f; if (t.href && (location.hostname == t.hostname) && t.pathname.startsWith('/poststats/') ) { ev.stopPropagation(); ev.preventDefault(); r=t.closest('div'); if (r.nextElementSibling && r.nextElementSibling.id.startsWith('/poststats/')) { r.nextElementSibling.remove(); return; } let f=document.createElement('iframe'); f.src=t.pathname; f.id=t.pathname; f.style='border: none; height: 0;'; r.parentNode.appendChild(f); } }, true); addStyle(2); started++; } function addStyle(v=1) { let st=document.createElement("style"); document.documentElement.appendChild(st); if (v==2) st.textContent= `div:has(+ iframe):not(:has( div a[href^="/poststats/"] )) a[href^="/poststats/"] { font-size: 0; } div:has(+ iframe):not(:has( div a[href^="/poststats/"] )) a[href^="/poststats/"]::before { content: "[-]"; font-size: 1rem !important; }`; else if (v==1) st.textContent= `html, :not(:is(pre,code)) { background: transparent !important; background-color: transparent !important; } html body > :not(shreddit-app), html body shreddit-app > :not([rpl]), html body shreddit-app > [rpl]::before, html body shreddit-app > [rpl][rpl][rpl] > :not(#subgrid-container), html body .main-container > :not(main), html body main > div > div, html body main > div > div + section { display: none !important; } shreddit-app > [rpl] { display: block !important; } obody, shreddit-app, shreddit-app > [rpl], #subgrid-container, #subgrid-container > .main-container, #subgrid-container > .main-container > main { display: contents !important; } main > div { margin: 0 !important; padding: 0 !important; } a { pointer-events: none; } body { overflow: auto; }`; } function resize() { var TO=0, iframe; if (!(iframe=parent.document.querySelector('iframe[id="'+location.pathname+'"]'))) return; function resizeIframe() { if (TO) {clearTimeout(TO); TO=0;} iframe.style.height=document.body.scrollHeight + 20 + 'px'; } const obs = new ResizeObserver(function(e){ if (TO) {clearTimeout(TO);} TO=setTimeout(resizeIframe,200); }); obs.observe(document.body); } function tryUntil(F, TO=150, c=-1, fail) { if (!c--) { fail && fail(); return; } try{F();}catch(e){setTimeout(function(){tryUntil(F,TO,c,fail);}, TO)} } if (window === window.top) { tryUntil(start, 0); if (document.readyState != 'loading') start(); else { document.addEventListener('DOMContentLoaded', start); window.addEventListener('load', start); } } else if (location.pathname.startsWith('/poststats/')) { tryUntil(addStyle ,0); tryUntil(resize, 0); } })();