|
|
本帖最后由 星之子 于 2025-8-12 22:58 编辑
动机
受到@Makima老师编写的【脚本】GM小电视(屏蔽小电视图片)的启发,为了满足自己一些更细微的需求,所以调教DeepSeek写了这个脚本。
功能
这个脚本可以屏蔽GM首页的小电视,避免一些命大的NSFW的内容意外显示。在重新打开界面后也会通过localStorage中的一个键记忆最后一次切换的状态。
与玛奇玛老师的版本相比,追加了两个小功能:
- 不再使用 [隐藏]、[显示] 这样的按钮(感觉有点此地无银这是可以说的吗),而是直接取代“首页电视”四个字的原本功能,将之作为切换按钮,更美观也更隐蔽。
- 添加了一个只显示标题的中间状态,现在是在 完整显示 / 仅标题无图片 / 仅导航无标题图片 三种状态间切换。
代码
@Name @Match @Icon
- // ==UserScript==
- // [url=home.php?mod=space&uid=668096]@Name[/url] 首页:屏蔽GM小电视
- // @namespace http://tampermonkey.net/
- // @version 1.2
- // @description 点击"首页电视"切换三种显示模式(完整显示/仅标题/仅导航),无闪烁且切换即时生效
- // @author Étoiles & DeepSeek
- // @match https://www.gamemale.com/*
- // @grant GM_addStyle
- // @grant GM_getValue
- // @grant GM_setValue
- // @run-at document-start
- // ==/UserScript==
- (function() {
- 'use strict';
- // 定义三种状态
- const STATES = {
- FULL: 0, // 显示全部
- TITLE_ONLY: 1, // 仅显示标题和导航
- NAV_ONLY: 2 // 仅显示导航
- };
- const STORAGE_KEY = 'slideshowState_v3';
- let currentState = GM_getValue(STORAGE_KEY, STATES.FULL);
- // 添加样式规则
- GM_addStyle(`
- .slideshow-state-1 img {
- display: none !important;
- }
- .slideshow-state-2 img,
- .slideshow-state-2 .title {
- display: none !important;
- }
- `);
- // 主逻辑
- function main() {
- const titleLink = document.querySelector('.titletext a[href*="home.php?mod=space&do=album&view=all"]');
- if (!titleLink) {
- setTimeout(main, 200);
- return;
- }
- const slideElement = document.querySelector('.module.cl.slidebox');
- if (!slideElement) return;
- // 初始应用状态
- function applyState(state) {
- slideElement.classList.remove('slideshow-state-1', 'slideshow-state-2');
- if (state === STATES.TITLE_ONLY) {
- slideElement.classList.add('slideshow-state-1');
- } else if (state === STATES.NAV_ONLY) {
- slideElement.classList.add('slideshow-state-2');
- }
- }
- // 初始化应用状态
- applyState(currentState);
- // 更新状态函数
- function updateState() {
- currentState = (currentState + 1) % 3;
- GM_setValue(STORAGE_KEY, currentState);
- applyState(currentState);
- }
- // 添加点击事件
- titleLink.addEventListener('click', function(e) {
- e.preventDefault();
- e.stopPropagation();
- updateState();
- });
- }
- // 执行初始化
- if (document.readyState === 'loading') {
- document.addEventListener('DOMContentLoaded', main);
- } else {
- main();
- }
- })();
复制代码
来自群组: 星象占卜 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
查看全部评分
|