请求实现网页中rq1/2/3到引言对应描述的锚点跳转功能
为网页中的RQ1/RQ2/RQ3添加锚点跳转(个人阅读用)
需求说明
我近期访问的一篇论文网页里,引言部分包含RQ1、RQ2、RQ3的问题描述,但其他章节提及这些术语时没有锚点跳转功能。需要实现点击任意位置的RQ1/RQ2/RQ3,直接跳转到引言中对应的问题描述区域,且不修改原网站内容。
实现方法(浏览器脚本方案)
通过浏览器油猴脚本(Tampermonkey)可动态添加锚点和跳转链接,步骤如下:
1. 安装Tampermonkey插件
在浏览器应用商店搜索并安装Tampermonkey插件。
2. 创建新脚本
打开Tampermonkey,点击「创建新脚本」,替换默认代码为以下内容:
// ==UserScript== // @name 为论文添加RQ锚点跳转 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 为页面中的RQ1/RQ2/RQ3添加跳转至引言对应描述的锚点 // @author You // @match https://arxiv.org/html/2403.17336v1/* // @grant none // ==/UserScript== (function() { 'use strict'; // 给引言中的RQ1/RQ2/RQ3添加锚点ID const rq1Element = document.querySelector('strong:contains("RQ1")'); rq1Element?.setAttribute('id', 'anchor-rq1'); const rq2Element = document.querySelector('strong:contains("RQ2")'); rq2Element?.setAttribute('id', 'anchor-rq2'); const rq3Element = document.querySelector('strong:contains("RQ3")'); rq3Element?.setAttribute('id', 'anchor-rq3'); // 遍历页面所有RQ文本,添加跳转链接 const rqPattern = /RQ[1-3]/g; const textWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT); let node; while (node = textWalker.nextNode()) { if (rqPattern.test(node.textContent)) { const span = document.createElement('span'); span.innerHTML = node.textContent.replace(rqPattern, match => `<a href="#anchor-${match.toLowerCase()}" style="color: inherit; text-decoration: underline;">${match}</a>` ); node.parentNode.replaceChild(span, node); } } })();
3. 适配目标页面
根据网页实际HTML结构,调整脚本中的元素选择器(比如strong:contains("RQ1")可换成引言段落的class/标签选择器),确保准确定位到引言中的RQ描述。
4. 启用脚本
保存脚本后刷新目标网页,即可点击任意位置的RQ1/RQ2/RQ3跳转到引言对应区域。
内容的提问来源于stack exchange,提问作者ares hercules
相关产品推荐
相关产品推荐

