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

浏览器加载JavaScript但无代码执行 load事件console.log无输出问题

复现代码片段

script.js

document.addEventListener('load', () => {
    console.log('hi')}
)

style.css

h1, h2{
    color:white;
    text-align: center;
    font-weight: 300;
}
body{
    background-color: rgb(24, 24, 24);
    overflow-x :hidden;
}

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <link rel = "stylesheet" href = "style.css">
    <script src = "script.js"></script>
    <title>Test</title>
</head>
<body>
        <h1 style="font-size: 50px;" id = "hi">Hi</h1>
</body>
</html>

注:以上并非完整业务代码,仅为用于复现问题的占位示例内容

问题现象

JavaScript文件可被浏览器正常加载,但代码未按预期执行,load事件回调内的console.log('hi')始终不会在控制台输出。

产生原因
  • 核心问题是事件绑定的目标对象错误:load事件本身不支持冒泡,只会在window对象上触发,直接给document对象绑定load事件监听,对应的回调永远不会被触发。
  • 对应修正方法:如果要监听页面所有资源(包括图片、样式表、iframe等外部资源)全部加载完成,需要把事件监听绑定到window对象上:
window.addEventListener('load', () => {
    console.log('hi')
})
  • 如果不需要等待图片等外部资源加载,只需要DOM结构解析完成就执行逻辑,可以直接监听document上的DOMContentLoaded事件:
document.addEventListener('DOMContentLoaded', () => {
    console.log('hi')
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 02:57:24