You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现跳转至动态更新href的书签工具?Bookmarklet方案失效求助

问题解决:一键跳转至动态更新的课程链接

问题背景

我需要一个书签,能直接跳转到目标页面(https://rasp.tpu.ru/site/department.html?id=7950&cource=1)里某个每周更新href的按钮链接,按钮的href包含gruppa_42148。之前尝试的书签脚本因为跳转后脚本上下文中断无法执行,添加load事件监听也没用——跳转后原脚本的运行环境已经消失,监听不会生效。


方案一:改进版书签脚本(无需跳转页面直接解析)

不用先跳转到目标页面,直接在当前页面发起请求获取目标页面的HTML内容,解析出需要的链接后再跳转。代码如下:

javascript:(async function(){
  try {
    const response = await fetch('https://rasp.tpu.ru/site/department.html?id=7950&cource=1');
    const html = await response.text();
    const parser = new DOMParser();
    const doc = parser.parseFromString(html, 'text/html');
    const targetLink = Array.from(doc.querySelectorAll('a')).find(el => el.href.includes('gruppa_42148'));
    if(targetLink) {
      window.location.href = targetLink.href;
    } else {
      alert('未找到目标链接');
    }
  } catch(err) {
    alert('获取页面失败:' + err.message);
  }
})();

原理

直接在当前页面通过fetch获取目标页面的HTML,用DOMParser解析成DOM结构后查找目标链接,最后完成跳转。全程不需要离开当前页面,避免了书签脚本跳转后上下文丢失的问题。


方案二:Tampermonkey脚本+触发书签

通过给目标页面添加自定义URL参数,让Tampermonkey脚本只在通过书签访问时触发自动跳转。

1. 安装Tampermonkey脚本

打开Tampermonkey的脚本编辑器,粘贴以下代码并保存:

// ==UserScript==
// @name         自动跳转指定课程链接
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  当通过特定书签访问目标页面时,自动跳转到包含gruppa_42148的链接
// @author       You
// @match        https://rasp.tpu.ru/site/department.html?id=7950&cource=1
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // 检查URL是否带有自定义触发标记
    const urlParams = new URLSearchParams(window.location.search);
    if(urlParams.get('from_bookmark') === '1') {
        // 循环检查元素是否加载完成
        function checkAndRedirect() {
            const targetLink = Array.from(document.querySelectorAll('a')).find(el => el.href.includes('gruppa_42148'));
            if(targetLink) {
                window.location.href = targetLink.href;
            } else {
                setTimeout(checkAndRedirect, 500); // 未找到则每隔0.5秒重试一次
            }
        }
        checkAndRedirect();
    }
})();

2. 创建触发书签

新建一个书签,将书签的地址设置为:

https://rasp.tpu.ru/site/department.html?id=7950&cource=1&from_bookmark=1

原理

点击书签时,会打开带from_bookmark=1参数的目标页面,Tampermonkey脚本检测到这个参数后,会持续检查页面中的目标链接,找到后自动完成跳转。


内容的提问来源于stack exchange,提问作者John Snow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 19:07:19