您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
v2ex站点增强插件.增强评论查看模式。
// ==UserScript== // @name v站增强 // @namespace https://www.yffjglcms.com/ // @version 0.1.1.20210402 // @description v2ex站点增强插件.增强评论查看模式。 // @author yffjglcms // @match https://v2ex.com/t/* // @match https://www.v2ex.com/t/* // @grant none // ==/UserScript== (function () { "use strict"; // Your code here... let config = { replyMode: -1 //1 对应楼层;-1对应用户 }; // 获取数据 let data = []; // 作者数据map let map = new Map(); // 楼层数据map let floorMap = new Map(); let boxName = "v2Box"; let boxNameSelector = ".v2Box"; let v2BtnName = "v2Btn"; let v2BtnSelector = ".v2Btn"; let v2Style = `<style> ${v2BtnSelector}{ border: none; background-color: white; color: grey; margin: 0px 0 5px 0; padding-bottom: 5px; width: 100%; border-bottom: 1px solid #c5c5c5; } ${v2BtnSelector}:focus{ outline: none; } ${v2BtnSelector}:hover{ cursor: pointer; } ${boxNameSelector}{ position: absolute;width: 270px; padding: 5px 8px;overflow-y:scroll; max-height: 80%; } </style>`; let msgBox = `<div class='box ${boxName}'></div>`; loadV2Style(); fetchData(); function loadV2Style() { $("head").append(v2Style); } function fetchData() { $(".cell strong a").each((idx, e) => { let _this = $(e); let _cell = _this.parents(".cell"); let author = _this.html(); let no = _cell.find(".no").html(); // console.log(author); // console.log(no); if (!map.has(author)) { map.set(author, []); } floorMap.set(no, _cell.html()); map.get(author).push(_cell.html()); }); // console.log(map); // console.log(floorMap); } function getSwitchTable() { return `<button class='${v2BtnName}'>${ config.replyMode > 0 ? "本页对应楼层评论" : "本页所有评论" }</button>`; } // 绑定事件 $(".reply_content a").hover( (e) => { let _this = $(e.currentTarget); let parent = _this.parents(".cell"); let author = _this.html(); if ($(boxNameSelector).length > 0) { $(boxNameSelector).remove(); } // 包装一下 nodeType 为 Text 的文本,方便选择 $(parent) .find(".reply_content") .contents() .filter(function () { return this.nodeType == 3; }) .wrap("<span></span>"); let next = $(_this).next().html(); let floor = next?.match(/(#)(\d+)/)?.[2]; // console.log(next); // console.log(floor); let _content = config.replyMode > 0 && floor ? floorMap.get(floor) : map.get(author); if (!_content) return; $(parent).before(msgBox); $(boxNameSelector).css("left", Rightbar.offsetLeft); $(boxNameSelector).html(_content); $(boxNameSelector).prepend(getSwitchTable()); $(v2BtnSelector).data("floor", floor); $(v2BtnSelector).data("author", author); }, () => { // console.log("2-1"); // $(boxNameSelector).remove(); // console.log("2-2"); } ); // 绑定切换事件 $("#Main").on("click", ".v2Btn", function () { config.replyMode = -config.replyMode; let author = $(this).data("author"); let floor = $(this).data("floor"); let _content = config.replyMode > 0 && floor ? floorMap.get(floor) : map.get(author); if (!_content) return; $(boxNameSelector).html(_content); $(boxNameSelector).prepend(getSwitchTable()); $(v2BtnSelector).data("floor", floor); $(v2BtnSelector).data("author", author); }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址