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

如何从页面script标签提取long_name与ID值?尝试getElementsByTagName未果

提取ENV.COURSE下的long_name和ID值的解决方案
  • 直接访问全局对象
    既然页面已存在ENV全局对象,无需解析script标签内容,直接在浏览器控制台或代码中调用:

    // 获取目标值
    const courseLongName = ENV.COURSE.long_name;
    const courseId = ENV.COURSE.ID; // 若实际字段为小写id,替换为ENV.COURSE.id
    console.log('课程全称:', courseLongName, '课程ID:', courseId);
    
  • 处理ENV未直接暴露的情况
    如果ENV无法直接全局访问,不要固定依赖script标签的索引(比如[6],页面结构变化会导致索引失效),可以遍历所有script标签,匹配包含ENV.COURSE的内容:

    const scripts = document.getElementsByTagName('script');
    for (const script of scripts) {
      const scriptContent = script.innerHTML;
      if (scriptContent.includes('ENV.COURSE')) {
        try {
          // 执行该脚本初始化ENV对象
          eval(scriptContent);
          // 提取目标字段
          const targetLongName = ENV.COURSE.long_name;
          const targetId = ENV.COURSE.ID;
          console.log('提取结果:', targetLongName, targetId);
          break;
        } catch (err) {
          console.error('解析脚本出错:', err);
        }
      }
    }
    
  • 原方法失败的原因
    固定使用document.getElementsByTagName('script')[6]不可靠:页面的script标签数量、顺序可能随页面更新或动态加载改变,导致无法定位到定义ENV的脚本;另外即使拿到脚本内容,也需要解析执行后才能获取ENV对象中的属性值,直接取innerHTML无法得到目标字段的具体值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:19:50