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

通过SCRIPT标签加载的脚本中document.currentScript.getAttribute报Null错误

问题原因与解决办法
  • 问题根源:document.currentScript 的生效时机是脚本正在执行的过程中,你却把它放在了 window.load 事件的回调函数里。当 load 事件触发时,页面所有资源(包括当前脚本)都已经加载执行完毕,浏览器会将 document.currentScript 重置为 null,这时候调用 getAttribute 自然会抛出TypeError。
  • 其他脚本正常运行的原因:那些能正常工作的脚本,是把 document.currentScript 直接写在脚本的顶层作用域里——在脚本加载执行的瞬间,document.currentScript 指向当前脚本元素,所以能正确获取到 src 属性。
  • 修复方案:
    1. 把获取脚本路径的代码移到脚本顶层,不要包裹在 load 回调中:
      // 脚本顶层直接获取,此时脚本正在执行,currentScript有效
      const _LeadLife_InputMask_Engine_SCRIPTSOURCE = document.currentScript.getAttribute('src');
      
      window.addEventListener("load", (event) => {
          console.log('jQuery Mask Plugin v1.14.16 initializing inline as part of LeadLife_InputMask_Engine initialization');
          console.log('_LeadLife_InputMask_Engine_SCRIPTSOURCE = ' + _LeadLife_InputMask_Engine_SCRIPTSOURCE);
      });
      
    2. 如果业务逻辑要求必须在 load 回调中使用这个路径,可以先在顶层把值存入全局变量或闭包,再在回调里引用。

内容的提问来源于stack exchange,提问作者David A. Gray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:33:26