您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在小红书列表的每篇笔记上添加悬浮按钮,点击可新窗口打开
// ==UserScript== // @name 小红书列表新窗口打开 // @namespace http://www.junxiaopang.com/ // @version 0.2 // @description 在小红书列表的每篇笔记上添加悬浮按钮,点击可新窗口打开 // @author 俊小胖 // @match https://www.xiaohongshu.com/* // @grant GM_addStyle // @license GPL // ==/UserScript== (function() { 'use strict'; // 添加自定义样式 GM_addStyle(` .custom-new-window-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: rgba(255, 80, 80, 0.9); color: white; border: none; border-radius: 50%; width: 40px; height: 40px; font-size: 16px; cursor: pointer; opacity: 0; transition: opacity 0.3s; z-index: 100; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); } .cover-container:hover .custom-new-window-btn { opacity: 1; } .cover-container { position: relative; display: inline-block; } .custom-new-window-btn:hover { background-color: #ff4d4d; } `); setTimeout(() => { document.querySelector('#global > div.main-container > div.side-bar > ul > div.channel-list-content')?.insertAdjacentHTML('beforeend', '<li><div class="link-wrapper"><a href="https://mlink.cc/junxiaopang" target="_blank" rel="noopener" class=""><span class="channel" style="color:#ff2442">红薯搞钱群</span></a></div></li>'); }, 1000); function processItems() { const domain = 'https://www.xiaohongshu.com'; const items = document.querySelectorAll('#exploreFeeds section,#userPostedFeeds > section'); items.forEach((section, index) => { const coverLink = section.querySelector('a.cover.mask.ld'); if (!coverLink || coverLink.dataset.processed) return; // 标记已处理,避免重复处理 coverLink.dataset.processed = 'true'; // 获取完整链接 const href = coverLink.getAttribute('href'); if (!href) return; const fullUrl = domain + href; // 创建容器 const container = document.createElement('div'); container.className = 'cover-container'; // 包装原始链接 coverLink.parentNode.insertBefore(container, coverLink); container.appendChild(coverLink); // 创建悬浮按钮 const newWindowBtn = document.createElement('button'); newWindowBtn.className = 'custom-new-window-btn'; newWindowBtn.title = '在新窗口打开'; newWindowBtn.innerHTML = '↗'; // 添加点击事件 newWindowBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); window.open(fullUrl, '_blank', 'noopener,noreferrer'); }); container.appendChild(newWindowBtn); }); } // 初始处理 processItems(); // 使用MutationObserver监听动态加载的内容 const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes.length) { processItems(); } }); }); observer.observe(document.body, { childList: true, subtree: true }); // 设置定时器处理可能的延迟加载 const interval = setInterval(() => { processItems(); }, 2000); // 10秒后清除定时器 setTimeout(() => { clearInterval(interval); }, 10000); })();