【异界方块】阻止论坛积分弹窗移除操作,持续显示积分弹窗
本帖最后由 哈哈哈哈_ 于 2026-6-12 22:15 编辑问题背景在论坛发帖或回帖时,每次都会触发积分奖励弹窗,但是弹窗消失速度很快
有时候运气好,触发了大额的奖励,这时想要截图留念,往往已经错过时机了
原理分析浏览器控制台调试观察后,发现论坛前端移除弹窗采用了“先隐藏、后销毁”的方法:
[*]视觉隐藏:先通过 CSS 属性(如 display、visibility 、opacity)让弹窗在页面上不可见(控制台还是可以看到数据的)
[*]彻底销毁:随后调用 removeChild 从 DOM 树中移除该元素。一旦元素被删除,再到控制台中看,是没法查到数据的
解决方案既然明确了销毁机制,我们可以通过重写 removeChild 方法来进行拦截:
[*]拦截判断:改写原生的 removeChild 逻辑,满足id为ntcwin、文字包含“发表”条件,执行脚本内的代码而不是移除元素
[*]强制显示:将已被 CSS 隐藏的弹窗重新修改为可见状态,方便截图
[*]手动释放:为了截图后可以销毁,为弹窗绑定 onclick 事件,手动点击弹窗后,会触发原有的销毁逻辑将其彻底移除
(由于日常回帖量较少,本方案只为了个人使用,提供一种简单的拦截机制,而不引入记账等复杂操作)
(可能会跟记账本冲突)
效果
相比原本的弹窗样式加了黄色的边框 ,要完全跟原本的弹窗一致,删除代码中的这行 child.style.border = '2px solid rgba(255,247,174,1)'; // 边框表示锁定成功
@Name @Name@Match@Name@Match
// ==UserScript==
// @Name Discuz 积分弹窗拦截
// @namespace http://tampermonkey.net/
// @version 1.1
// @description拦截积分弹窗
// @author Me
// @match https://*.gamemale.com/forum.php*
// @match https://*.gamemale.com/thread-*
// @match https://*.gamemale.com/*mod=viewthread*
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_xmlhttpRequest
// @run-at document-start
// ==/UserScript==
(function () {
'use strict';
(() => {
// 拦截 DOM 移除:阻止 ntcwin 节点删除 ---
const originalRemoveChild = Element.prototype.removeChild;
Element.prototype.removeChild = function (child) {
if (child && child.id === 'ntcwin' && child.textContent.includes("发表")) {
console.log("%c[锁定] 阻止移除积分弹窗", "background:#222; color:#bada55; padding:2px;");
// 样式固化:移除时候强制显示
child.style.setProperty('display', 'block', 'important');
child.style.setProperty('visibility', 'visible', 'important');
child.style.setProperty('opacity', '1', 'important');
child.style.border = '2px solid rgba(255,247,174,1)'; // 边框表示锁定成功
// 允许手动点击关闭
child.onclick = function () { originalRemoveChild.call(document.getElementById('append_parent') || child.parentNode, child); };
return child;
}
return originalRemoveChild.apply(this, arguments);
};
})();
})();
哦哦哦这个好。有的时候确实截不到图。 本帖最后由 黑暗哈德 于 2026-6-12 22:08 编辑
代码部分每次编辑都会重新解析@,还挺麻烦的,如果要分享还是附件方便。
我编辑的时候已经看到楼主的3个版本了。每次编辑前面的都要删掉,如果后面的变了也记得要删。
和我刚才刷新前看到的部分不一样了,和账本不同,这样子不用计算的小惊喜也很有趣。
很实用的小方法惹,这样“一发入魂”的时候就可以很方便截图晒出来了{:6_197:} 消除移除是方便截图塞分吗,那确实很适合。 运气差的人不需要这个脚本,概率什么的都是假的 一直显示出来很方便各种截图了 这个确实还挺有用的,不过我就算出大额度奖励要截图好像也没什么分享的地方 很細節的東西都有CODE 協助
感覺很棒呢:D 很实用的脚本感谢分享 {:6_188:} (不过根本没有灵魂勋章! 非常实用的脚本!以及在泥潭学会的前端小技巧+1 对于想要记录大丰收感觉很不错的插件脚本啦~感谢楼主分享惹呢挺好的;P 哦哦哦,方便截图的小脚本,适合触发了大量的勋章的人 这下不用担心一闪而过截不到图啦 有幾次想截圖都真的來不及,希望來不及的次數能摩多摩多{:6_188:}
畢竟會想截圖大多是中大獎哈哈 这个很有用惹,有时候信号不好,积分一显示就消失噜,只能翻站街日记来看。以后勋章多了,也可以拍下来记录惹。 是的有时候爆的奖励很欧是需要截图保存,不过我也有自己的查看方法惹:$ 有用脚本,出了灵魂就可以美美截图啦~ https://img.gamemale.com/album/202508/27/154618wt52fzit25qb9aaf.jpg倒是可以截图炫耀了惹 以前截图这个总是拼手速 這功能感覺對歐皇有用
非洲人是生不出靈魂的~