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

如何让第三方外部脚本在window.onload触发时执行

解决页面加载完成后触发第三方脚本执行的问题

嘿,我完全懂你的困惑!你想把第三方脚本延迟到页面完全加载完成后再执行,但发现没法直接把脚本地址传给window.onload或者addEventListener——因为这些方法需要的是函数,不是字符串URL。别担心,我们可以通过动态创建script元素的方式实现你的需求,下面给你两种常用的写法:

方法一:使用window.onload绑定函数

你之前看到的window.onload = codeAddress写法是对的,我们只需要把加载第三方脚本的逻辑放到这个函数里就行:

function loadThirdPartyScript() {
  // 创建一个script元素
  const scriptTag = document.createElement('script');
  // 给脚本设置你需要的属性(和原示例一致)
  scriptTag.id = 'snippet';
  scriptTag.src = 'https://something.com/dsd/something.js?key=35345';
  // 将脚本添加到页面的body末尾,浏览器会自动加载并执行它
  document.body.appendChild(scriptTag);
}

// 页面加载完成后执行这个函数
window.onload = loadThirdPartyScript;

方法二:使用addEventListener(匿名函数版本)

如果你不想单独定义函数名,直接用匿名函数传入addEventListener就可以了,这样更简洁:

window.addEventListener('load', function() {
  const scriptTag = document.createElement('script');
  scriptTag.id = 'snippet';
  scriptTag.src = 'https://something.com/dsd/something.js?key=35345';
  document.body.appendChild(scriptTag);
});

或者用ES6箭头函数更清爽:

window.addEventListener('load', () => {
  const scriptTag = document.createElement('script');
  scriptTag.id = 'snippet';
  scriptTag.src = 'https://something.com/dsd/something.js?key=35345';
  document.body.appendChild(scriptTag);
});

为什么要这么做?

直接在函数里写<script>标签是不会被浏览器解析的,必须通过DOM API动态创建script元素并添加到页面中,浏览器才会触发脚本的加载和执行。这样就完美实现了你想要的“页面加载完成后再加载第三方脚本”的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:18:14