尝试设置body元素样式时触发Uncaught TypeError错误的问题求助
尝试设置body元素样式时触发Uncaught TypeError错误的问题求助
嗨,我来帮你捋捋这个问题~
首先,你碰到的这个报错:
Uncaught TypeError: Cannot read properties of null (reading 'style') at updateColour (coloured_fade.html:15:22)
核心原因就是你代码里尝试获取的body元素返回了null,所以才会触发“读取null的style属性”的错误。你说代码已经放在onload事件处理器里了,但还是出问题,大概率是这几个常见情况:
- 获取body元素的方式写错了:比如你是不是用了
document.getElementById('body')?但默认情况下body元素的id并不是body,正确的获取方式应该是直接用document.body,或者document.querySelector('body'),如果选择器写错,自然拿不到元素返回null。 onload的绑定逻辑有问题:比如你是不是在页面还没初始化的时候就绑定了事件?不过window的onload本来就是等所有资源加载完成才触发,这个可能性相对小一些,但也可以检查下是不是绑定语句写错了(比如误写成了document.onload而不是window.onload)。- 极端情况:页面结构缺失body标签:这种情况很少见,但如果你的HTML里没写
<body>标签,document.body也会返回null,不过正常页面一般不会犯这种错啦。
给你举个正确的示例代码,在onload里设置body样式的正确写法:
window.onload = function updateColour() { // 正确获取body元素 const bodyElement = document.body; // 或者用querySelector的方式 // const bodyElement = document.querySelector('body'); // 示例:设置背景色 bodyElement.style.backgroundColor = '#f0f0f0'; };
你可以重点检查下自己代码里获取body元素的那行语句,大概率是这里出了问题哦。
备注:内容来源于stack exchange,提问作者DeepThought42
相关产品推荐
相关产品推荐

