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

如何获取Chrome鼠标悬停HTML链接时生成的URL以用于Steam库存油猴脚本开发

Steam库存页面「查看徽章进度」链接读取异常解决方案

你遇到的问题本质是Steam库存页面的异步DOM更新逻辑导致的:点击左侧道具后,右侧信息区的属性赋值操作滞后于点击事件同步触发时机,你直接读取href属性时,前端逻辑还未完成新链接的更新,因此只能拿到上一次的旧值,需要两次点击才能读取到正确值。浏览器悬停时显示的链接正确,是因为Steam会在按钮hover阶段完成href属性的最终赋值,避免用户看到错误的跳转地址。

可用解决方案

方案1:用MutationObserver监听属性变化(最稳定,无延迟)

直接监听「查看徽章进度」按钮的href属性变化,只要属性更新就自动获取最新值,不需要手动控制时机,适配所有异步更新场景。
示例代码:

// 替换成你实际用的「查看徽章进度」按钮选择器
const badgeBtnSelector = '/* 你的按钮选择器,比如.btn_green_white_innerfade */';

// 初始化监听器
const observer = new MutationObserver((mutations) => {
  mutations.forEach(mutation => {
    if (mutation.attributeName === 'href') {
      const latestHref = mutation.target.href;
      // 此处写拿到最新链接后的处理逻辑
      console.log('最新徽章链接:', latestHref);
    }
  });
});

// 监听配置:仅监听href属性变化
const observerConfig = { attributes: true, attributeFilter: ['href'] };

// 页面加载完成后绑定监听器,也可在道具点击时动态绑定
window.addEventListener('load', () => {
  const badgeBtn = document.querySelector(badgeBtnSelector);
  if (badgeBtn) {
    observer.observe(badgeBtn, observerConfig);
  }
});

方案2:读取dataset预存的链接

Steam前端逻辑通常会把资源的真实地址提前存在元素的data-*自定义属性里,更新时间远早于href属性,你可以在DevTools中查看按钮元素的属性,找到类似data-href、data-badge-url的字段,直接读取该属性值即可,无需等待href更新。
示例读取方式:

const badgeBtn = document.querySelector(badgeBtnSelector);
// 字段名替换为你实际找到的自定义属性名
const latestHref = badgeBtn.dataset.badgeUrl;

方案3:点击道具后加延迟读取

如果不想写复杂的监听逻辑,也可以在左侧道具的点击回调里加100-200ms的延迟再读取href,等待Steam的DOM更新完成后再取值,绝大多数场景都可生效。
示例代码:

// 替换为你实际用的左侧库存道具选择器
const itemSelector = '.inventory_item';
document.addEventListener('click', (e) => {
  if (e.target.closest(itemSelector)) {
    // 点击道具后延迟200ms读取链接
    setTimeout(() => {
      const badgeBtn = document.querySelector(badgeBtnSelector);
      const latestHref = badgeBtn?.href;
      if (latestHref) {
        console.log('最新徽章链接:', latestHref);
      }
    }, 200);
  }
});

方案4:监听按钮悬停事件获取

你也可以直接监听按钮的mouseenter事件,触发时读取href值即可,此时Steam已经完成了链接赋值,和浏览器左下角显示的内容完全一致。
示例代码:

document.addEventListener('mouseenter', (e) => {
  const badgeBtn = e.target.closest(badgeBtnSelector);
  if (badgeBtn) {
    const latestHref = badgeBtn.href;
    console.log('最新徽章链接:', latestHref);
  }
}, true); // 开启捕获模式提前拿到事件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:54:00