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

使用JavaScript解析HTML中script标签内的email值遇阻,求解决方案

提取Script标签中_hsq的Email值解决方案

方案1:通过Script内容特征定位并正则提取

如果目标Script已经加载到页面中,可通过遍历所有Script标签,匹配包含_hsq.push(["identify",的内容,再用正则提取email:

const scripts = document.getElementsByTagName('script');
let targetEmail = null;

for (const script of scripts) {
  const content = script.textContent;
  if (content.includes('_hsq.push(["identify",')) {
    const emailMatch = content.match(/email:\s*"([^"]+)"/);
    if (emailMatch) {
      targetEmail = emailMatch[1];
      break;
    }
  }
}

console.log(targetEmail); // 输出: your@email.com

方案2:监听_hsq的Push方法(解决变量未返回问题)

直接读取window._hsq无结果,通常是因为脚本未执行完成或动态加载。可以重写push方法,在数据被推入时捕获:

// 提前初始化并监听_hsq
window._hsq = window._hsq || [];
const originalPush = window._hsq.push;

window._hsq.push = function(...args) {
  // 匹配identify操作的数据
  if (args[0]?.[0] === 'identify') {
    const userInfo = args[0][1];
    if (userInfo.email) {
      console.log(userInfo.email); // 输出: your@email.com
      // 可选:恢复原push方法,避免持续监听
      window._hsq.push = originalPush;
    }
  }
  return originalPush.apply(this, args);
};

适用场景说明

  • 方案1适合静态加载的Script,页面渲染完成后即可执行;
  • 方案2适合动态加载的Script,能确保在_hsq数据被推入时及时捕获。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:10:34