Cannot set property 'onclick' of null报错
经常几个页面使用公共js文件, 原来遇到也没留意, 原来是本页面执行的时候, 其他页面也在执行并赋予id于onclick.
因为页面是正常情况下是不存在null和undefined
if(null){ console.log(1); } else { console.log(2); }//输出2 if(undefined){ console.log(3); } else { console.log(4); }//输出4
所以解决的方法:
①最常用的方法, js写带有函数名的函数a, 在页面标签里使用时间<div onclick="a()"></div>
②每个点击页面之前写上判断,判断是否存在,如下
var tan = document.getElementById("tan"); var argeeSure = document.getElementById("argeeSure"); var close = document.getElementById("off"); var sure = document.getElementById("sure"); var body = document.getElementsByTagName("body")[0]; // console.log(body) if(argeeSure) argeeSure.onclick = function () { tan.style.display = "block"; body.style.height = "100%"; body.style.overflow = "hidden"; } if(close) close.onclick = function () { tan.style.display = "none"; body.style.height = "auto"; body.style.overflow = "auto"; } if(sure) sure.onclick = function () { tan.style.display = "none"; body.style.height = "auto"; body.style.overflow = "auto"; }
其中if(argeeSure)是简写形式, 只作用其简写下面两行, 相当于
if(argeeSure !=null && argeeSure != undefined){ argeeSure.onclick = function () { tan.style.display = "block"; body.style.height = "100%"; body.style.overflow = "hidden"; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通