您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
linux.do显示楼层号!
// ==UserScript== // @name linux.do楼层号显示 // @namespace // @version 0.1.0 // @description linux.do显示楼层号! // @author nulluser // @match https://linux.do/* // @icon https://linux.do/uploads/default/optimized/1X/3a18b4b0da3e8cf96f7eea15241c3d251f28a39b_2_180x180.png // @grant none // @license MIT // @namespace https://greasyfork.org/users/1268706 // ==/UserScript== (function () { 'use strict'; // 为所有帖子添加楼层号,改进以避免重复添加 function addFloorNumbers() { document.querySelectorAll('.boxed.onscreen-post').forEach(function (post) { if (!post.querySelector('.floor-number')) { // 检查是否已经添加了楼层号 var floorNumber = document.createElement('div'); floorNumber.className = 'floor-number'; floorNumber.textContent = '楼层: ' + post.id.split("_")[1]; floorNumber.style.cssText = 'color: grey; margin-left: 10px;'; post.querySelector('.topic-meta-data').appendChild(floorNumber); } }); } // 简化MutationObserver初始化 function initMutationObserver() { var observer = new MutationObserver(function () { addFloorNumbers(); // 只需在DOM变化时尝试添加楼层号 }); observer.observe(document.body, { childList: true, subtree: true }); } // 简化随机跳转逻辑 function randomJump() { fetch(window.location.href + '.json') .then(response => response.json()) .then(data => { if (data && data.posts_count) { const postId = 1 + Math.floor(Math.random() * data.posts_count); const currentUrl = new URL(window.location.href); const list1 = currentUrl.pathname.split("/"); if (list1[list1.length - 2] == "topic") { list1.push(postId); }else if (list1[list1.length - 3] == "topic") { list1[list1.length - 1] = postId; }; const newUrl = list1.join("/"); window.location.href = newUrl; alert('恭喜楼层【' + postId + '】的用户被抽中!'); } }) .catch(error => console.error('Error:', error)); } // 页面URL变化监测和按钮状态更新 function monitorURLChangeAndUpdateButton() { let lastURL = location.href; setInterval(() => { const currentURL = location.href; if (currentURL !== lastURL) { lastURL = currentURL; updateButtonVisibility(); } }, 1000); // 每秒检查一次URL变化 } // 更新随机楼层按钮显示状态 function updateButtonVisibility() { const isTopicPage = /^https:\/\/linux\.do\/t\/topic\//.test(location.href); const randomButton = document.getElementById('randomButton1'); randomButton.style.display = isTopicPage ? 'block' : 'none'; } // 初始化 function init() { const randomButton = document.createElement('button'); randomButton.id = "randomButton1"; randomButton.textContent = '随机楼层'; randomButton.style.cssText = ` position: fixed; bottom: 90%; right: 10px; width: 80px; height: 30px; background-color: #007bff; color: white; border: none; border-radius: 5px; font-size: 15px; cursor: pointer; z-index: 9999; display: block; // 默认不显示 `; randomButton.onclick = randomJump; document.body.appendChild(randomButton); addFloorNumbers(); // 初始时添加楼层号 initMutationObserver(); // 监听DOM变化 monitorURLChangeAndUpdateButton(); // 监听URL变化并更新按钮显示状态 } window.addEventListener('load', init); })();